Discussion:
Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
Skills
2013-01-28 12:38:54 UTC
Permalink
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.

http://skillsmatter.com/podcast/design-architecture/restful-objects

Mark



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steve Jones
2013-01-28 16:51:10 UTC
Permalink
Are they?

I'm pretty sure that REST has not made any real enterprise in-roads and
even on the web we are seeing non-RESTful solutions continue to be
developed. The reason remains that its a coding exercise more than a
design exercise.

Steve
Post by Skills
**
REST architectures are becoming increasingly more common, both on the
internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Ashraf Galal
2013-01-28 19:31:19 UTC
Permalink
It seems to me that you spoke about architectural constraints which I think it should be an input to the architecture team before starting their work

Sent from my iPhone.

All the best

Ashraf Galal
Post by Steve Jones
Are they?
I'm pretty sure that REST has not made any real enterprise in-roads and even on the web we are seeing non-RESTful solutions continue to be developed. The reason remains that its a coding exercise more than a design exercise.
Steve
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-01-28 21:57:16 UTC
Permalink
I have to agree with Steve in this. Recently, Alexandr Johannesen helped me to understand capabilities of REST to communicate an arbitrary business action other than HTTP's GET... DELETE. I agreed that many actions may be modelled by those HTTP's ones while many cannot or require many non-comprehensive HTTP trips. But why bother when we have Web Services that can perfectly conduct requests and responses for any business actions, yes, business action, nor Web actions. We should not forget that an enterprise is a little something behind a Web and business concerns with profit, not with Web and HTTP.

- Michael
________________________________
Sent: Monday, January 28, 2013 4:51 PM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Are they?
I'm pretty sure that REST has not made any real enterprise in-roads and even on the web we are seeing non-RESTful solutions continue to be developed.  The reason remains that its a coding exercise more than a design exercise.
Steve
Post by Skills
 
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Alexander Johannesen
2013-01-29 00:25:36 UTC
Permalink
Hiya,
Post by Michael Poulin
But why bother when we have Web Services
The key to REST is if you're doing large distributed systems (such as
the internet), and you worry about performance and future development
of such. It's harder to spread out an API and its context across
servers than it is to spread out URIs and have them redirect. The rest
is plumbing, as Steve is so fond of saying. :)


Regards,

Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Michael Poulin
2013-01-29 20:55:38 UTC
Permalink
Here is one SOAful comment, Alex,
- do not forget that each Service is independent from others and there are no authority in the SOA Ecosystem who commands (manages, governes) all services. Yes, every Service cares about performances but dealing with business functionality , performances vary, and it is OK. What does mean " It's harder to spread out an API and its context across servers than it is to spread out URIs"? Why somebody (one) is responsible for spreading APIs? It is a job of every Service, or its steward, or provider, or owner to spread as needed for the business needs and, at it is just a pluming, nobody outside of this Service cares how it is actually spread. Isn't this the fundamental assumption of service orientation?

- Michael
________________________________
Sent: Tuesday, January 29, 2013 12:25 AM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hiya,
Post by Michael Poulin
But why bother when we have Web Services
The key to REST is if you're doing large distributed systems (such as
the internet), and you worry about performance and future development
of such. It's harder to spread out an API and its context across
servers than it is to spread out URIs and have them redirect. The rest
is plumbing, as Steve is so fond of saying. :)
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
Alexander Johannesen
2013-01-30 01:23:59 UTC
Permalink
Hiya,
Post by Michael Poulin
What does mean "
It's harder to spread out an API and its context across servers than it is
to spread out URIs"? Why somebody (one) is responsible for spreading APIs?
A WebService can be big or small, but essentially with one endpoint in
charge of it, and that's the resource you have to balance and monitor.
With REST, even smaller parts of the service itself is further split
open, and, if I'm in a pedantic mood (which never happens :) ) I might
venture down the path of ranting about endpoints all together;
end-points are so close to the behaviour and shape of APIs and
traditional RPCs. REST could (or should) do away with the evil little
buggers, but it's a very easy / lazy way for programmers to attach
control (and control points within their code) to their APIs, so
they're going to hang around, like, forever.
Post by Michael Poulin
It is a job of every Service, or its steward, or provider, or owner to
spread as needed for the business needs and, at it is just a pluming, nobody
outside of this Service cares how it is actually spread. Isn't this the
fundamental assumption of service orientation?
Yes, indeed, but with REST your resource URIs don't necessarily end at
the service end-point, nor should there even *be* end-points and
services as closed functions. This is the main difference, to me,
between traditional web services and REST more than anything.


Regards,

Alex

--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Michael Poulin
2013-01-30 19:03:28 UTC
Permalink
There are no doubts that REST is easier that Web Service. But, thanks to the principle of energy balance, Web Service easier works with actions than REST. Actually, REST was not designed for such a task. Overall, it is good that we do not need a hammer and can use the right tool for the task.

Thanks to "pedantic" Alex, I've understood that any information is a resource, but not everything is information :-)

- Michael
________________________________
Sent: Wednesday, January 30, 2013 1:23 AM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hiya,
Post by Michael Poulin
What does mean "
It's harder to spread out an API and its context across servers than it is
to spread out URIs"? Why somebody (one) is responsible for spreading APIs?
A WebService can be big or small, but essentially with one endpoint in
charge of it, and that's the resource you have to balance and monitor.
With REST, even smaller parts of the service itself is further split
open, and, if I'm in a pedantic mood (which never happens :) ) I might
venture down the path of ranting about endpoints all together;
end-points are so close to the behaviour and shape of APIs and
traditional RPCs. REST could (or should) do away with the evil little
buggers, but it's a very easy / lazy way for programmers to attach
control (and control points within their code) to their APIs, so
they're going to hang around, like, forever.
Post by Michael Poulin
It is a job of every Service, or its steward, or provider, or owner to
spread as needed for the business needs and, at it is just a pluming, nobody
outside of this Service cares how it is actually spread. Isn't this the
fundamental assumption of service orientation?
Yes, indeed, but with REST your resource URIs don't necessarily end at
the service end-point, nor should there even *be* end-points and
services as closed functions. This is the main difference, to me,
between traditional web services and REST more than anything.
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
David Tildesley
2013-01-31 05:11:59 UTC
Permalink
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)

David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steve Jones
2013-01-31 13:07:07 UTC
Permalink
I remember doing that with Web Services in 2000... and I got an XML doc I
could give to my consumers from which they could generate the client side.

How we've progressed in 13 years.

Steve
Post by David Tildesley
**
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the
internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-01-31 15:30:22 UTC
Permalink
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
David Tildesley
2013-02-01 01:40:43 UTC
Permalink
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).

Apart from reading the book, you can simply read the ISIS web site and you will get the picture.

Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.

David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steve Jones
2013-02-01 10:55:45 UTC
Permalink
COM, EJB, CORBA et al aren't the issue. REST is the issue, we've wasted
the last 6 years in system to system integration in getting back to 2001.

Steve
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you
will get the picture.
Then the full irony will be appreciated - application development as is it
would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-01 10:56:06 UTC
Permalink
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).

A few years ago, I talked with Eric about DDD and SOA representing him my DOSOM approach. He agreed that while he used 'service' terminology and business domain approach, his DDD did not look further than objects (DOSOM defines boundaries of Business Service first and only then engages DDD to fill in the service body allowing no exposure of object's API into the level of services including their interfaces).

I think that the future for in-house developers is not bright - IT will transition into a Cloud dispatcher role while developers will move onto Cloud vendor's side. The shift will be on WHAT technology does for business and WHY while the HOW part will be more and more 'commoditised' (because of 'economy of scale').

- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
David Tildesley
2013-02-01 23:56:41 UTC
Permalink
Hi Michael, 

I think you may be missing the point (or maybe I am - I'm always open to reasoned correction). The drive to take a domain oriented approach in application development by the likes of Coad, Evans, Haywood etc. was always about an approach that the business could easily engage with, transfer domain knowledge to the developers, build consensus,  etc.. 

I personally think that Evans went too far in his book in describing technical foundation design that was unnecessary in the context of the objective of the book. 

Naked objects and ISIS is a breath of fresh air - allows developers to lift their head out of the plumbing and do rapid and agile interactive development with the business SMEs that verifies the problem domain and provides a loosely coupled and durable consensus based problem domain model. Even if they took the resulting problem domain (business objects) layer and bolted on a non-generated conventional UI using the UI framework of their choice or wrapped it with Spring or other full stack framework once the model was settled, the advantages are significant.

Naked objects, in one fell swoop removed one of the biggest de-railers of software development - the magpie like focus on the UI at the expense of the business layer which usually results in the business layer being tightly coupled within, brittle, anemic, coupled to the UI layer and difficult/expensive to bolt on another UI when required. You can always improve the UI after you've reached agreement on the business objects (problem domain model). All non-trivial business applications should have a rich domain model (Coad, Evans, Fowler, ...) rich domain models have both data and behaviour (the functional aspects of the model), with behavior being the most important focus (has the most influence on the model shape).  The problem domain (business layer) should always be independent of the UI and SI (system integration) layers. By following this design pattern, bolting on a "service" version of the "UI" layer is relative straight forward. 

You talk about a function-oriented view as if it were the exclusive preserve of SOA. I personally think you mixing up cause and effect here (poor software development practice that left out the DDD approach, leading to the need (to attempt) to "fix" it with SOA). I do however acknowledge that it is not only poor software development practice but the business trend to buy COTS based business apps that has been a significant contributer to the need to (attempt to) "fix" it with SOA. But then why wouldn't SOA also be susceptible to poor practices? 

What I like about SOA is that it lifts us above the technology and the legacy contraints so that we can properly think about the business context without it being distorted by the system implementations. What then do we have to be distracted with JSON vs XML, soap vs Restful ... debates?

Finally, Dan's motivation for prioritising a RestfulObject API (using JSON) over maybe an equivalent SOAP/xml version would most likely have been the fact that he had in mind paving the way for Javascript/Ajax based UI version of the other (generated) viewers in the ISIS suite.

Regards,
David. 


________________________________
From: Michael Poulin <m3poulin-/***@public.gmane.org>
To: "service-orientated-architecture-***@public.gmane.org" <service-orientated-architecture-***@public.gmane.org>
Sent: Friday, 1 February 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood


 
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).

A few years ago, I talked with Eric about DDD and SOA representing him my DOSOM approach. He agreed that while he used 'service' terminology and business domain approach, his DDD did not look further than objects (DOSOM defines boundaries of Business Service first and
only then engages DDD to fill in the service body allowing no exposure of object's API into the level of services including their interfaces).

I think that the future for in-house developers is not bright - IT will transition into a Cloud dispatcher role while developers will move onto Cloud vendor's side. The shift will be on WHAT technology does for business and WHY while the HOW part will be more and more 'commoditised' (because of 'economy of scale').

- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-02 12:50:09 UTC
Permalink
Hi David,
 unfortunately, I do not miss and mix in this area (may be in others, yes). The essence of the agile model where developers work business SME is the baby of UI development (when business SME and users did not really know what they want). DOSOM does not prevent DDD or agile style of development. It only states that business functionality should be defined as functionality, verbs, i.e. services. The information model comes along regardless objects. Modelling of implementation in OO (including DDD) comes next. In other words, it is the service that defines its boundaries, not the objects that realise the service. As a consequence, BTW, DOSOM or service design prevents objects underneath to share inheritance that crosses the service boundaries other way than via official public interfaces (DDD does not have such constraint and can easily couple service via implementation).


Everything you said about Naked objects and ISIS re UI is absolutely right but problem is not in there. The problem is in that modelling independent functions/features and even very small functions-services-actions does not follow the OO principles of inheritance and encapsulation. A service does not own data but only meta-data, i.e. related ontology and semantic. Services do not inherit functionality - they hire fufunctionality from outside providers. 

I do not say that functionality modelling is a prerogative of SOA. I simply do not know any other concept that would better perform this task.


I do not accept a blame on SOA for the silly actions of some business people - even modern COTS as a service is a seldom (if ever) matter. Maximum what they usually provide is a set of interfaces including Web Services but this does not make them services - a castle door of your sugar-house does not make it a mansion (e.f. SAP and its hundreds of "services").


- Michael
________________________________
Sent: Friday, February 1, 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi Michael, 
I think you may be missing the point (or maybe I am - I'm always open to reasoned correction). The drive to take a domain oriented approach in application development by the likes of Coad, Evans, Haywood etc. was always about an approach that the business could easily engage with, transfer domain knowledge to the developers, build consensus,  etc.. 
I personally think that Evans went too far in his book in describing technical foundation design that was unnecessary in the context of the objective of the book. 
Naked objects and ISIS is a breath of fresh air - allows developers to lift their head out of the plumbing and do rapid and agile interactive development with the business SMEs that verifies the problem domain and provides a loosely coupled and durable consensus based problem domain model. Even if they took the resulting problem domain (business objects) layer and bolted on a non-generated conventional UI using the UI framework of their choice or wrapped it with Spring or other full stack framework once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of software development - the magpie like focus on the UI at the expense of the business layer which usually results in the business layer being tightly coupled within, brittle, anemic, coupled to the UI layer and difficult/expensive to bolt on another UI when required. You can always improve the UI after you've reached agreement on the business objects (problem domain model). All non-trivial business applications should have a rich domain model (Coad, Evans, Fowler, ...) rich domain models have both data and behaviour (the functional aspects of the model), with behavior being the most important focus (has the most influence on the model shape).  The problem domain (business layer) should always be independent of the UI and SI (system integration) layers. By following this design pattern, bolting on a "service" version of the "UI" layer is relative straight forward. 
You talk about a function-oriented view as if it were the exclusive preserve of SOA. I personally think you mixing up cause and effect here (poor software development practice that left out the DDD approach, leading to the need (to attempt) to "fix" it with SOA). I do however acknowledge that it is not only poor software development practice but the business trend to buy COTS based business apps that has been a significant contributer to the need to (attempt to) "fix" it with SOA. But then why wouldn't SOA also be susceptible to poor practices? 
What I like about SOA is that it lifts us above the technology and the legacy contraints so that we can properly think about the business context without it being distorted by the system implementations. What then do we have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using JSON) over maybe an equivalent SOAP/xml version would most likely have been the fact that he had in mind paving the way for Javascript/Ajax based UI version of the other (generated) viewers in the ISIS suite.
Regards,
David. 
________________________________
Sent: Friday, 1 February 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my DOSOM approach. He agreed that while he used 'service' terminology and business domain approach, his DDD did not look further than objects (DOSOM defines boundaries of
Business Service first and
only then engages DDD to fill in the service body allowing no exposure of object's API into the level of services including their interfaces).
I think that the future for in-house developers is not bright - IT will transition into a Cloud dispatcher role while developers will move onto Cloud vendor's side. The shift will be on WHAT technology does for business and WHY while the HOW part will be more and more 'commoditised' (because of 'economy of scale').
- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Anne Manes
2013-02-02 14:31:02 UTC
Permalink
Michael,

I fundamentally disagree with your assertion that services are verbs.
Services implement capabilities. And capabilities are nouns.

Anne
Post by Michael Poulin
**
Hi David,
unfortunately, I do not miss and mix in this area (may be in others,
yes). The essence of the agile model where developers work business SME is
the baby of UI development (when business SME and users did not really know
what they want). DOSOM does not prevent DDD or agile style of development.
It only states that business functionality should be defined as
functionality, verbs, i.e. services. The information model comes along
regardless objects. Modelling of implementation in OO (including DDD) comes
next. In other words, it is the service that defines its boundaries, not
the objects that realise the service. As a consequence, BTW, DOSOM or
service design prevents objects underneath to share inheritance that
crosses the service boundaries other way than via official public
interfaces (DDD does not have such constraint and can easily couple service
via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely
right but problem is not in there. The problem is in that modelling
independent functions/features and even very small
functions-services-actions does not follow the OO principles of inheritance
and encapsulation. A service does not own data but only meta-data, i.e.
related ontology and semantic. Services do not inherit functionality - they
hire fufunctionality from outside providers.
I do not say that functionality modelling is a prerogative of SOA. I
simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business
people - even modern COTS as a service is a seldom (if ever) matter.
Maximum what they usually provide is a set of interfaces including Web
Services but this does not make them services - a castle door of your
sugar-house does not make it a mansion (e.f. SAP and its hundreds of
"services").
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Hi Michael,
I think you may be missing the point (or maybe I am - I'm always open to
reasoned correction). The drive to take a domain oriented approach in
application development by the likes of Coad, Evans, Haywood etc. was
always about an approach that the business could easily engage with,
transfer domain knowledge to the developers, build consensus, etc..
I personally think that Evans went too far in his book in describing
technical foundation design that was unnecessary in the context of the
objective of the book.
Naked objects and ISIS is a breath of fresh air - allows developers to
lift their head out of the plumbing and do rapid and agile interactive
development with the business SMEs that verifies the problem domain and
provides a loosely coupled and durable consensus based problem domain
model. Even if they took the resulting problem domain (business objects)
layer and bolted on a non-generated conventional UI using the UI framework
of their choice or wrapped it with Spring or other full stack framework
once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of
software development - the magpie like focus on the UI at the expense of
the business layer which usually results in the business layer being
tightly coupled within, brittle, anemic, coupled to the UI layer and
difficult/expensive to bolt on another UI when required. You can always
improve the UI after you've reached agreement on the business objects
(problem domain model). All non-trivial business applications should have a
rich domain model (Coad, Evans, Fowler, ...) rich domain models have both
data and behaviour (the functional aspects of the model), with behavior
being the most important focus (has the most influence on the model shape).
The problem domain (business layer) should always be independent of the UI
and SI (system integration) layers. By following this design pattern,
bolting on a "service" version of the "UI" layer is relative straight
forward.
You talk about a function-oriented view as if it were the exclusive
preserve of SOA. I personally think you mixing up cause and effect here
(poor software development practice that left out the DDD approach, leading
to the need (to attempt) to "fix" it with SOA). I do however acknowledge
that it is not only poor software development practice but the business
trend to buy COTS based business apps that has been a significant
contributer to the need to (attempt to) "fix" it with SOA. But then why
wouldn't SOA also be susceptible to poor practices?
What I like about SOA is that it lifts us above the technology and the
legacy contraints so that we can properly think about the business context
without it being distorted by the system implementations. What then do we
have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using
JSON) over maybe an equivalent SOAP/xml version would most likely have been
the fact that he had in mind paving the way for Javascript/Ajax based UI
version of the other (generated) viewers in the ISIS suite.
Regards,
David.
------------------------------
*Sent:* Friday, 1 February 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Well, I do not see any new needs in spite of several new technologies in
your response, David. I am not a 'church' person any more (before I had
this sin re Java) and I see a 'new' division in SW development that started
with CORBA but clearly materialised only after 2006. This division is
between object-oriented view on business problems and related development
(DDD from Eric Evans including Naked Objects and RestfulObjects) and
function-oriented view, which is much closer to the business world than the
model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my
DOSOM approach. He agreed that while he used 'service' terminology and
business domain approach, his DDD did not look further than objects (DOSOM
defines boundaries of Business Service first and only then engages DDD to
fill in the service body allowing no exposure of object's API into the
level of services including their interfaces).
I think that the future for in-house developers is not bright - IT will
transition into a Cloud dispatcher role while developers will move onto
Cloud vendor's side. The shift will be on WHAT technology does for business
and WHY while the HOW part will be more and more 'commoditised' (because of
'economy of scale').
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 1:40 AM
*Subject:* [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you
will get the picture.
Then the full irony will be appreciated - application development as is it
would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-02 15:25:00 UTC
Permalink
Anne, a capability  means an ability to do something, to realise a function under certain conditions. Particularly, a capability to produce certain Real World Effect (a change in the state of world). An outcome of exercising this capability may be a product, and information, a resource. A capability cannot be a noun, an object, a resource, but it is a method, a way, a means of using, producing, accessing a resource. This is how I understand 'capability'.

- Michael
________________________________
Sent: Saturday, February 2, 2013 2:31 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Michael,
I fundamentally disagree with your assertion that services are verbs. Services implement capabilities. And capabilities are nouns. 
Anne
Post by Michael Poulin
 
Hi David,
 unfortunately, I do not miss and mix in this area (may be in others, yes). The essence of the agile model where developers work business SME is the baby of UI development (when business SME and users did not really know what they want). DOSOM does not prevent DDD or agile style of development. It only states that business functionality should be defined as functionality, verbs, i.e. services. The information model comes along regardless objects. Modelling of implementation in OO (including DDD) comes next. In other words, it is the service that defines its boundaries, not the objects that realise the service. As a consequence, BTW, DOSOM or service design prevents objects underneath to share inheritance that crosses the service boundaries other way than via official public interfaces (DDD does not have such constraint and can easily couple service via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely right but problem is not in there. The problem is in that modelling independent functions/features and even very small functions-services-actions does not follow the OO principles of inheritance and encapsulation. A service does not own data but only meta-data, i.e. related ontology and semantic. Services do not inherit functionality - they hire fufunctionality from outside providers. 
I do not say that functionality modelling is a prerogative of SOA. I simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business people - even modern COTS as a service is a seldom (if ever) matter. Maximum what they usually provide is a set of interfaces including Web Services but this does not make them services - a castle door of your sugar-house does not make it a mansion (e.f. SAP and its hundreds of "services").
- Michael
________________________________
Sent: Friday, February 1, 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi Michael, 
I think you may be missing the point (or maybe I am - I'm always open to reasoned correction). The drive to take a domain oriented approach in application development by the likes of Coad, Evans, Haywood etc. was always about an approach that the business could easily engage with, transfer domain knowledge to the developers, build consensus,  etc.. 
I personally think that Evans went too far in his book in describing technical foundation design that was unnecessary in the context of the objective of the book. 
Naked objects and ISIS is a breath of fresh air - allows developers to lift their head out of the plumbing and do rapid and agile interactive development with the business SMEs that verifies the problem domain and provides a loosely coupled and durable consensus based problem domain model. Even if they took the resulting problem domain (business objects) layer and bolted on a non-generated conventional UI using the UI framework of their choice or wrapped it with Spring or other full stack framework once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of software development - the magpie like focus on the UI at the expense of the business layer which usually results in the business layer being tightly coupled within, brittle, anemic, coupled to the UI layer and difficult/expensive to bolt on another UI when required. You can always improve the UI after you've reached agreement on the business objects (problem domain model). All non-trivial business applications should have a rich domain model (Coad, Evans, Fowler, ...) rich domain models have both data and behaviour (the functional aspects of the model), with behavior being the most important focus (has the most influence on the model shape).  The problem domain (business layer) should always be independent of the UI and SI (system integration) layers. By following this design pattern, bolting on a "service" version of the "UI" layer is relative straight forward. 
You talk about a function-oriented view as if it were the exclusive preserve of SOA. I personally think you mixing up cause and effect here (poor software development practice that left out the DDD approach, leading to the need (to attempt) to "fix" it with SOA). I do however acknowledge that it is not only poor software development practice but the business trend to buy COTS based business apps that has been a significant contributer to the need to (attempt to) "fix" it with SOA. But then why wouldn't SOA also be susceptible to poor practices? 
What I like about SOA is that it lifts us above the technology and the legacy contraints so that we can properly think about the business context without it being distorted by the system implementations. What then do we have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using JSON) over maybe an equivalent SOAP/xml version would most likely have been the fact that he had in mind paving the way for Javascript/Ajax based UI version of the other (generated) viewers in the ISIS suite.
Regards,
David. 
________________________________
Sent: Friday, 1 February 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my DOSOM approach. He agreed that while he used 'service' terminology and business domain approach, his DDD did not look further than objects (DOSOM defines boundaries of
Business Service first and
only then engages DDD to fill in the service body allowing no exposure of object's API into the level of services including their interfaces).
Post by Michael Poulin
I think that the future for in-house developers is not bright - IT will transition into a Cloud dispatcher role while developers will move onto Cloud vendor's side. The shift will be on WHAT technology does for business and WHY while the HOW part will be more and more 'commoditised' (because of 'economy of scale').
- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Ashley at Metamaxim
2013-02-02 20:49:17 UTC
Permalink
Hi

Natural language is often not precise enough for this kind of
discussion. For instance "a marriage" is a state (that persists over
time) and in this sense has the properties of a noun (at least in the
context of this discussion); but also an event (that brings about a
change of state) and has the properties of a verb (at least in the
context of this discussion).

By picking the right examples (ones that carry this kind of linguistic
ambiguity) you can probably go on having this discussion for ever!

Rgds
Ashley
Anne, a capability means an ability to do something, to realise a
function under certain conditions. Particularly, a capability to
produce certain Real World Effect (a change in the state of world). An
outcome of exercising this capability may be a product, and
information, a resource. A capability cannot be a noun, an object, a
resource, but it is a method, a way, a means of using, producing,
accessing a resource. This is how I understand 'capability'.
- Michael
------------------------------------------------------------------------
*Sent:* Saturday, February 2, 2013 2:31 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful
Objects - A Hypermedia API For Domain Object Models by Dan Haywood
Michael,
I fundamentally disagree with your assertion that services are
verbs. Services implement capabilities. And capabilities are nouns.
Anne
Hi David,
unfortunately, I do not miss and mix in this area (may be in
others, yes). The essence of the agile model where developers
work business SME is the baby of UI development (when business
SME and users did not really know what they want). DOSOM does
not prevent DDD or agile style of development. It only states
that business functionality should be defined as
functionality, verbs, i.e. services. The information model
comes along regardless objects. Modelling of implementation in
OO (including DDD) comes next. In other words, it is the
service that defines its boundaries, not the objects that
realise the service. As a consequence, BTW, DOSOM or service
design prevents objects underneath to share inheritance that
crosses the service boundaries other way than via official
public interfaces (DDD does not have such constraint and can
easily couple service via implementation).
Everything you said about Naked objects and ISIS re UI is
absolutely right but problem is not in there. The problem is
in that modelling independent functions/features and even very
small functions-services-actions does not follow the OO
principles of inheritance and encapsulation. A service does
not own data but only meta-data, i.e. related ontology and
semantic. Services do not inherit functionality - they hire
fufunctionality from outside providers.
I do not say that functionality modelling is a prerogative of
SOA. I simply do not know any other concept that would better
perform this task.
I do not accept a blame on SOA for the silly actions of some
business people - even modern COTS as a service is a seldom
(if ever) matter. Maximum what they usually provide is a set
of interfaces including Web Services but this does not make
them services - a castle door of your sugar-house does not
make it a mansion (e.f. SAP and its hundreds of "services").
- Michael
------------------------------------------------------------------------
*Sent:* Friday, February 1, 2013 11:56 PM
Restful Objects - A Hypermedia API For Domain Object
Models by Dan Haywood
Hi Michael,
I think you may be missing the point (or maybe I am - I'm
always open to reasoned correction). The drive to take a
domain oriented approach in application development by the
likes of Coad, Evans, Haywood etc. was always about an
approach that the business could easily engage with,
transfer domain knowledge to the developers, build
consensus, etc..
I personally think that Evans went too far in his book in
describing technical foundation design that was
unnecessary in the context of the objective of the book.
Naked objects and ISIS is a breath of fresh air - allows
developers to lift their head out of the plumbing and do
rapid and agile interactive development with the business
SMEs that verifies the problem domain and provides a
loosely coupled and durable consensus based problem domain
model. Even if they took the resulting problem domain
(business objects) layer and bolted on a non-generated
conventional UI using the UI framework of their choice or
wrapped it with Spring or other full stack framework once
the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the
biggest de-railers of software development - the magpie
like focus on the UI at the expense of the business layer
which usually results in the business layer being tightly
coupled within, brittle, anemic, coupled to the UI layer
and difficult/expensive to bolt on another UI when
required. You can always improve the UI after you've
reached agreement on the business objects (problem domain
model). All non-trivial business applications should have
a rich domain model (Coad, Evans, Fowler, ...) rich domain
models have both data and behaviour (the functional
aspects of the model), with behavior being the most
important focus (has the most influence on the model
shape). The problem domain (business layer) should always
be independent of the UI and SI (system integration)
layers. By following this design pattern, bolting on a
"service" version of the "UI" layer is relative straight
forward.
You talk about a function-oriented view as if it were the
exclusive preserve of SOA. I personally think you mixing
up cause and effect here (poor software development
practice that left out the DDD approach, leading to the
need (to attempt) to "fix" it with SOA). I do however
acknowledge that it is not only poor software development
practice but the business trend to buy COTS based business
apps that has been a significant contributer to the need
to (attempt to) "fix" it with SOA. But then why wouldn't
SOA also be susceptible to poor practices?
What I like about SOA is that it lifts us above the
technology and the legacy contraints so that we can
properly think about the business context without it being
distorted by the system implementations. What then do we
have to be distracted with JSON vs XML, soap vs Restful
... debates?
Finally, Dan's motivation for prioritising a RestfulObject
API (using JSON) over maybe an equivalent SOAP/xml version
would most likely have been the fact that he had in mind
paving the way for Javascript/Ajax based UI version of the
other (generated) viewers in the ISIS suite.
Regards,
David.
------------------------------------------------------------------------
*Sent:* Friday, 1 February 2013 11:56 PM
Restful Objects - A Hypermedia API For Domain Object
Models by Dan Haywood
Well, I do not see any new needs in spite of several new
technologies in your response, David. I am not a 'church'
person any more (before I had this sin re Java) and I see
a 'new' division in SW development that started with CORBA
but clearly materialised only after 2006. This division is
between object-oriented view on business problems and
related development (DDD from Eric Evans including Naked
Objects and RestfulObjects) and function-oriented view,
which is much closer to the business world than the model
of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA
representing him my DOSOM approach. He agreed that while
he used 'service' terminology and business domain
approach, his DDD did not look further than objects (DOSOM
defines boundaries of Business Service first and only then
engages DDD to fill in the service body allowing no
exposure of object's API into the level of services
including their interfaces).
I think that the future for in-house developers is not
bright - IT will transition into a Cloud dispatcher role
while developers will move onto Cloud vendor's side. The
shift will be on WHAT technology does for business and WHY
while the HOW part will be more and more 'commoditised'
(because of 'economy of scale').
- Michael
------------------------------------------------------------------------
*Sent:* Friday, February 1, 2013 1:40 AM
Restful Objects - A Hypermedia API For Domain Object
Models by Dan Haywood
It's a little off topic for SOA (choice of soap,
restful, json, xml - that's detail you probably aren't
too fussed about), but if you read Dan's book "DDD
using Naked Objects" then you will completely
understand the motivation for RestfulObjects even
though RestfulObjects post dates the book which came
out a few years ago (before Apache ISIS 1.0 with is
next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the
ISIS web site and you will get the picture.
Then the full irony will be appreciated - application
development as is it would have been if it weren't
broken by a mixture of EJB, Corba, COM, expensive and
overblown vendor frameworks and dumbed down
developers, project managers and IT managers.
David.
<mailto:service-orientated-architecture%40yahoogroups.com>,
Post by Michael Poulin
Also, what required us to progress in this task for
those 13 years?
Post by Michael Poulin
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Restful Objects - A Hypermedia API For Domain Object
Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000...
 and I got an XML doc I could give to my consumers
from which they could generate the client side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven
the ISIS example archetype from apache ISIS project
which generates a Restful Objects (application)
service straight from the application's domain objects
. Then just GET around the resfulobjects interface
using a browser to get a feel for it (would pay you to
first use the wicket viewer to understand the domain
of the app and run the fixture as user "sven" to
populate some "ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
--- In
<mailto:service-orientated-architecture%40yahoogroups.com>,
Post by Michael Poulin
Post by David Tildesley
Post by Skills
REST architectures are becoming increasingly
more common, both on the internet and within the
enterprise. Behind most of these REST APIs is a domain
model (some anaemic, some less so); the wiring up of
that REST API to the model involves lots of
boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Post by Michael Poulin
Post by David Tildesley
Post by Skills
Mark
Michael Poulin
2013-02-02 23:40:53 UTC
Permalink
I agree with Ashly. Nevertheless, the REST model assumes that the resource is information, a noun, and if one sends 'GET http://server/marrige', no events would be considered on the receiving side.

- Michael
________________________________
Sent: Saturday, February 2, 2013 8:49 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi
Natural language is often not precise enough for this kind of
discussion. For instance "a marriage" is a state (that persists
over time) and in this sense has the properties of a noun (at
least in the context of this discussion); but also an event (that
brings about a change of state) and has the properties of a verb
(at least in the context of this discussion).
By picking the right examples (ones that carry this kind of
linguistic ambiguity) you can probably go on having this
discussion for ever!
 
Rgds
Ashley
 
Post by Michael Poulin
Anne, a capability  means an ability to do something, to realise a function under certain conditions. Particularly, a capability to produce certain Real World Effect (a change in the state of world). An outcome of exercising this capability may be a product, and information, a resource. A capability cannot be a noun, an object, a resource, but it is a method, a way, a means of using, producing, accessing a resource. This is how I understand 'capability'.
- Michael
________________________________
Sent: Saturday, February 2, 2013 2:31 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Michael,
I fundamentally disagree with your assertion that services are verbs. Services implement capabilities. And capabilities are nouns. 
Anne
 
Post by Michael Poulin
Hi David,
 unfortunately, I do not miss and mix in this area (may be in others, yes). The essence of the agile model where developers work business SME is the baby of UI development (when business SME and users did not really know what they want). DOSOM does not prevent DDD or agile style of development. It only states that business functionality should be defined as functionality, verbs, i.e. services. The information model comes along regardless objects. Modelling of implementation in OO (including DDD) comes next. In other words, it is the service that defines its boundaries, not the objects that realise the service. As a consequence, BTW, DOSOM or service design prevents objects underneath to share inheritance that crosses the service boundaries other way than via official public interfaces (DDD does not have such constraint and can easily couple service via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely right but problem is not in there. The problem is in that modelling independent functions/features and even very small functions-services-actions does not follow the OO principles of inheritance and encapsulation. A service does not own data but only meta-data, i.e. related ontology and semantic. Services do not inherit functionality - they hire fufunctionality from outside providers. 
I do not say that functionality modelling is a prerogative of SOA. I simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business people - even modern COTS as a service is a seldom (if ever) matter. Maximum what they usually provide is a set of interfaces including Web Services but this does not make them services - a castle door of your sugar-house does not make it a mansion (e.f. SAP and its hundreds of "services").
- Michael
________________________________
Sent: Friday, February 1, 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi Michael, 
I think you may be missing the point (or maybe I am - I'm always open to reasoned correction). The drive to take a domain oriented approach in application development by the likes of Coad, Evans, Haywood etc. was always about an approach that the business could easily engage with, transfer domain knowledge to the developers, build consensus,  etc.. 
I personally think that Evans went too far in his book in describing technical foundation design that was unnecessary in the context of the objective of the book. 
Naked objects and ISIS is a breath of fresh air - allows developers to lift their head out of the plumbing and do rapid and agile interactive development with the business SMEs that verifies the problem domain and provides a loosely coupled and durable consensus based problem domain model. Even if they took the resulting problem domain (business objects) layer and bolted on a non-generated conventional UI using the UI framework of their choice or wrapped it with Spring or other full stack framework once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of software development - the magpie like focus on the UI at the expense of the business layer which usually results in the business layer being tightly coupled within, brittle, anemic, coupled to the UI layer and difficult/expensive to bolt on another UI when required. You can always improve the UI after you've reached agreement on the business objects (problem domain model). All non-trivial business applications should have a rich domain model (Coad, Evans, Fowler, ...) rich domain models have both data and behaviour (the functional aspects of the model), with behavior being the most important focus (has the most influence on the model shape).  The problem domain (business layer) should always be independent of the UI and SI (system integration) layers. By following this design pattern, bolting on a "service" version of the "UI" layer is relative straight forward. 
You talk about a function-oriented view as if it were the exclusive preserve of SOA. I personally think you mixing up cause and effect here (poor software development practice that left out the DDD approach, leading to the need (to attempt) to "fix" it with SOA). I do however acknowledge that it is not only poor software development practice but the business trend to buy COTS based business apps that has been a significant contributer to the need to (attempt to) "fix" it with SOA. But then why wouldn't SOA also be susceptible to poor practices? 
What I like about SOA is that it lifts us above the technology and the legacy contraints so that we can properly think about the business context without it being distorted by the system implementations. What then do we have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using JSON) over maybe an equivalent SOAP/xml version would most likely have been the fact that he had in mind paving the way for Javascript/Ajax based UI version of the other (generated) viewers in the ISIS suite.
Regards,
David. 
________________________________
Sent: Friday, 1 February 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).
A few years
ago, I talked
with Eric
about DDD and
SOA
representing
him my DOSOM
approach. He
agreed that
while he used
'service'
terminology
and business
domain
approach, his
DDD did not
look further
than objects
(DOSOM defines
boundaries of
Business
Service first
and only then
engages DDD to
fill in the
service body
allowing no
exposure of
object's API
into the level
of services
including
their
interfaces).
Post by Michael Poulin
Post by Michael Poulin
I think that
the future for
in-house
developers is
not bright -
IT will
transition
into a Cloud
dispatcher
role while
developers
will move onto
Cloud vendor's
side. The
shift will be
on WHAT
technology
does for
business and
WHY while the
HOW part will
be more and
more
'commoditised'
(because of
'economy of
scale').
Post by Michael Poulin
Post by Michael Poulin
- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from
reading the
book, you can
simply read
the ISIS web
site and you
will get the
picture.
Post by Michael Poulin
Post by Michael Poulin
Then the full
irony will be
appreciated -
application
development as
is it would
have been if
it weren't
broken by a
mixture of
EJB, Corba,
COM, expensive
and overblown
vendor
frameworks and
dumbed down
developers,
project
managers and
IT managers.
Post by Michael Poulin
Post by Michael Poulin
David.
Post by Michael Poulin
Also,
what required
us to progress
in this task
for those 13
years?
Post by Michael Poulin
Post by Michael Poulin
Post by Michael Poulin
- Michael
________________________________
From: Steve
Jones
service-orientated-architecture
Thursday,
January 31,
2013 1:07 PM
Re:
[service-orientated-architecture]
Re: Restful
Objects - A
Hypermedia API
For Domain
Object Models
by Dan Haywood
Post by Michael Poulin
Post by Michael Poulin
Post by Michael Poulin
 
I
remember doing
that with Web
Services in
2000...  and
I got an XML
doc I could
give to my
consumers from
which they
could generate
the client
side.
Post by Michael Poulin
Post by Michael Poulin
Post by Michael Poulin
How
we've
progressed in
13 years.
Post by Michael Poulin
Post by Michael Poulin
Post by Michael Poulin
Steve
On 31
January 2013
05:11, David
Tildesley
Post by Michael Poulin
 
Post by Michael Poulin
Post by Michael Poulin
I
like it. If
you want to
see it in
action, maven
the ISIS
example
archetype from
apache ISIS
project which
generates a
Restful
Objects
(application)
service
straight from
the
application's
domain objects
. Then just
GET around the
resfulobjects
interface
using a
browser to get
a feel for it
(would pay you
to first use
the wicket
viewer to
understand the
domain of the
app and run
the fixture as
user "sven" to
populate some
"ToDos)
Post by Michael Poulin
David.
REST
architectures
are becoming
increasingly
more common,
both on the
internet and
within the
enterprise.
Behind most of
these REST
APIs is a
domain model
(some anaemic,
some less so);
the wiring up
of that REST
API to the
model involves
lots of
boilerplate
and lots of
testing.
Post by Michael Poulin
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Steve Jones
2013-02-03 00:15:44 UTC
Permalink
I'll disagree with both of you.

Services are Nouns, BIG grown up Nouns, Capabilities are Verbs. Services
are the container, Capabilities the action.

Steve
Post by David Tildesley
**
Michael,
I fundamentally disagree with your assertion that services are verbs.
Services implement capabilities. And capabilities are nouns.
Anne
Post by Michael Poulin
**
Hi David,
unfortunately, I do not miss and mix in this area (may be in others,
yes). The essence of the agile model where developers work business SME is
the baby of UI development (when business SME and users did not really know
what they want). DOSOM does not prevent DDD or agile style of development.
It only states that business functionality should be defined as
functionality, verbs, i.e. services. The information model comes along
regardless objects. Modelling of implementation in OO (including DDD) comes
next. In other words, it is the service that defines its boundaries, not
the objects that realise the service. As a consequence, BTW, DOSOM or
service design prevents objects underneath to share inheritance that
crosses the service boundaries other way than via official public
interfaces (DDD does not have such constraint and can easily couple service
via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely
right but problem is not in there. The problem is in that modelling
independent functions/features and even very small
functions-services-actions does not follow the OO principles of inheritance
and encapsulation. A service does not own data but only meta-data, i.e.
related ontology and semantic. Services do not inherit functionality - they
hire fufunctionality from outside providers.
I do not say that functionality modelling is a prerogative of SOA. I
simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business
people - even modern COTS as a service is a seldom (if ever) matter.
Maximum what they usually provide is a set of interfaces including Web
Services but this does not make them services - a castle door of your
sugar-house does not make it a mansion (e.f. SAP and its hundreds of
"services").
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Hi Michael,
I think you may be missing the point (or maybe I am - I'm always open to
reasoned correction). The drive to take a domain oriented approach in
application development by the likes of Coad, Evans, Haywood etc. was
always about an approach that the business could easily engage with,
transfer domain knowledge to the developers, build consensus, etc..
I personally think that Evans went too far in his book in describing
technical foundation design that was unnecessary in the context of the
objective of the book.
Naked objects and ISIS is a breath of fresh air - allows developers to
lift their head out of the plumbing and do rapid and agile interactive
development with the business SMEs that verifies the problem domain and
provides a loosely coupled and durable consensus based problem domain
model. Even if they took the resulting problem domain (business objects)
layer and bolted on a non-generated conventional UI using the UI framework
of their choice or wrapped it with Spring or other full stack framework
once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of
software development - the magpie like focus on the UI at the expense of
the business layer which usually results in the business layer being
tightly coupled within, brittle, anemic, coupled to the UI layer and
difficult/expensive to bolt on another UI when required. You can always
improve the UI after you've reached agreement on the business objects
(problem domain model). All non-trivial business applications should have a
rich domain model (Coad, Evans, Fowler, ...) rich domain models have both
data and behaviour (the functional aspects of the model), with behavior
being the most important focus (has the most influence on the model shape).
The problem domain (business layer) should always be independent of the UI
and SI (system integration) layers. By following this design pattern,
bolting on a "service" version of the "UI" layer is relative straight
forward.
You talk about a function-oriented view as if it were the exclusive
preserve of SOA. I personally think you mixing up cause and effect here
(poor software development practice that left out the DDD approach, leading
to the need (to attempt) to "fix" it with SOA). I do however acknowledge
that it is not only poor software development practice but the business
trend to buy COTS based business apps that has been a significant
contributer to the need to (attempt to) "fix" it with SOA. But then why
wouldn't SOA also be susceptible to poor practices?
What I like about SOA is that it lifts us above the technology and the
legacy contraints so that we can properly think about the business context
without it being distorted by the system implementations. What then do we
have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using
JSON) over maybe an equivalent SOAP/xml version would most likely have been
the fact that he had in mind paving the way for Javascript/Ajax based UI
version of the other (generated) viewers in the ISIS suite.
Regards,
David.
------------------------------
*Sent:* Friday, 1 February 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Well, I do not see any new needs in spite of several new technologies in
your response, David. I am not a 'church' person any more (before I had
this sin re Java) and I see a 'new' division in SW development that started
with CORBA but clearly materialised only after 2006. This division is
between object-oriented view on business problems and related development
(DDD from Eric Evans including Naked Objects and RestfulObjects) and
function-oriented view, which is much closer to the business world than the
model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my
DOSOM approach. He agreed that while he used 'service' terminology and
business domain approach, his DDD did not look further than objects (DOSOM
defines boundaries of Business Service first and only then engages DDD to
fill in the service body allowing no exposure of object's API into the
level of services including their interfaces).
I think that the future for in-house developers is not bright - IT will
transition into a Cloud dispatcher role while developers will move onto
Cloud vendor's side. The shift will be on WHAT technology does for business
and WHY while the HOW part will be more and more 'commoditised' (because of
'economy of scale').
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 1:40 AM
*Subject:* [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-03 09:30:12 UTC
Permalink
Well, is this become a semantic or logical point, Steve?

I agree that services are containers  of actions. For example, Accounting Service and smaller AccountPayable Service. The title is noun, the essence is action. The big action (verb). No doubts that capabilities are verbs and the things that realise verbs or an access to verbs have to be verbs. A 'hummer' cannot be a service while 'hammering' is a derivative from verb; it explains the action and is a service.

- Michael
________________________________
Sent: Sunday, February 3, 2013 12:15 AM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I'll disagree with both of you.
Services are Nouns, BIG grown up Nouns, Capabilities are Verbs.  Services are the container, Capabilities the action.
Steve
Post by David Tildesley
 
Michael,
I fundamentally disagree with your assertion that services are verbs. Services implement capabilities. And capabilities are nouns. 
Anne
Post by Michael Poulin
 
Hi David,
 unfortunately, I do not miss and mix in this area (may be in others, yes). The essence of the agile model where developers work business SME is the baby of UI development (when business SME and users did not really know what they want). DOSOM does not prevent DDD or agile style of development. It only states that business functionality should be defined as functionality, verbs, i.e. services. The information model comes along regardless objects. Modelling of implementation in OO (including DDD) comes next. In other words, it is the service that defines its boundaries, not the objects that realise the service. As a consequence, BTW, DOSOM or service design prevents objects underneath to share inheritance that crosses the service boundaries other way than via official public interfaces (DDD does not have such constraint and can easily couple service via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely right but problem is not in there. The problem is in that modelling independent functions/features and even very small functions-services-actions does not follow the OO principles of inheritance and encapsulation. A service does not own data but only meta-data, i.e. related ontology and semantic. Services do not inherit functionality - they hire fufunctionality from outside providers. 
I do not say that functionality modelling is a prerogative of SOA. I simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business people - even modern COTS as a service is a seldom (if ever) matter. Maximum what they usually provide is a set of interfaces including Web Services but this does not make them services - a castle door of your sugar-house does not make it a mansion (e.f. SAP and its hundreds of "services").
- Michael
________________________________
Sent: Friday, February 1, 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi Michael, 
I think you may be missing the point (or maybe I am - I'm always open to reasoned correction). The drive to take a domain oriented approach in application development by the likes of Coad, Evans, Haywood etc. was always about an approach that the business could easily engage with, transfer domain knowledge to the developers, build consensus,  etc.. 
I personally think that Evans went too far in his book in describing technical foundation design that was unnecessary in the context of the objective of the book. 
Naked objects and ISIS is a breath of fresh air - allows developers to lift their head out of the plumbing and do rapid and agile interactive development with the business SMEs that verifies the problem domain and provides a loosely coupled and durable consensus based problem domain model. Even if they took the resulting problem domain (business objects) layer and bolted on a non-generated conventional UI using the UI framework of their choice or wrapped it with Spring or other full stack framework once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of software development - the magpie like focus on the UI at the expense of the business layer which usually results in the business layer being tightly coupled within, brittle, anemic, coupled to the UI layer and difficult/expensive to bolt on another UI when required. You can always improve the UI after you've reached agreement on the business objects (problem domain model). All non-trivial business applications should have a rich domain model (Coad, Evans, Fowler, ...) rich domain models have both data and behaviour (the functional aspects of the model), with behavior being the most important focus (has the most influence on the model shape).  The problem domain (business layer) should always be independent of the UI and SI (system integration) layers. By following this design pattern, bolting on a "service" version of the "UI" layer is relative straight forward. 
You talk about a function-oriented view as if it were the exclusive preserve of SOA. I personally think you mixing up cause and effect here (poor software development practice that left out the DDD approach, leading to the need (to attempt) to "fix" it with SOA). I do however acknowledge that it is not only poor software development practice but the business trend to buy COTS based business apps that has been a significant contributer to the need to (attempt to) "fix" it with SOA. But then why wouldn't SOA also be susceptible to poor practices? 
What I like about SOA is that it lifts us above the technology and the legacy contraints so that we can properly think about the business context without it being distorted by the system implementations. What then do we have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using JSON) over maybe an equivalent SOAP/xml version would most likely have been the fact that he had in mind paving the way for Javascript/Ajax based UI version of the other (generated) viewers in the ISIS suite.
Regards,
David. 
________________________________
Sent: Friday, 1 February 2013 11:56 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Well, I do not see any new needs in spite of several new technologies in your response, David. I am not a 'church' person any more (before I had this sin re Java) and I see a 'new' division in SW development that started with CORBA but clearly materialised only after 2006. This division is between object-oriented view on business problems and related development (DDD from Eric Evans including Naked Objects and RestfulObjects) and function-oriented view, which is much closer to the business world than the model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my DOSOM approach. He agreed that while he used 'service' terminology and business domain approach, his DDD did not look further than objects (DOSOM defines boundaries of
Business Service first and
only then engages DDD to fill in the service body allowing no exposure of object's API into the level of services including their interfaces).
Post by David Tildesley
Post by Michael Poulin
I think that the future for in-house developers is not bright - IT will transition into a Cloud dispatcher role while developers will move onto Cloud vendor's side. The shift will be on WHAT technology does for business and WHY while the HOW part will be more and more 'commoditised' (because of 'economy of scale').
- Michael
________________________________
Sent: Friday, February 1, 2013 1:40 AM
Subject: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Steve Jones
2013-02-03 23:55:13 UTC
Permalink
Post by Michael Poulin
**
Well, is this become a semantic or logical point, Steve?
Semantics are important ;)
Post by Michael Poulin
I agree that services are containers of actions. For example, Accounting
Service and smaller AccountPayable Service. The title is noun, the essence
is action. The big action (verb). No doubts that capabilities are verbs and
the things that realise verbs or an access to verbs have to be verbs. A
'hummer' cannot be a service while 'hammering' is a derivative from verb;
it explains the action and is a service.
I'm not sure on that, for me the hammerer would be the service who has the
ability to deliver the capabilities of which hammering would be one.
Accounts Payable is a Noun, a proper noun in fact. I'm sure we could find
something somewhere when the container should also be a verb (I'm
struggling) but I've not found one yet where there isn't a good noun,
sometimes admittedly the noun is a noun because its a proper noun (name of
a department) so 'Shipping' for instance is clearly a noun while shipping
is a verb, its a small semantic difference but critical as the Shipping
department does more than just shipping and its the fact that its a
department which gives it the authority to deliver the capabilities.

Steve
Post by Michael Poulin
- Michael
------------------------------
*To:* service-orientated-architecture <
*Sent:* Sunday, February 3, 2013 12:15 AM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
I'll disagree with both of you.
Services are Nouns, BIG grown up Nouns, Capabilities are Verbs. Services
are the container, Capabilities the action.
Steve
**
Michael,
I fundamentally disagree with your assertion that services are verbs.
Services implement capabilities. And capabilities are nouns.
Anne
**
Hi David,
unfortunately, I do not miss and mix in this area (may be in others,
yes). The essence of the agile model where developers work business SME is
the baby of UI development (when business SME and users did not really know
what they want). DOSOM does not prevent DDD or agile style of development.
It only states that business functionality should be defined as
functionality, verbs, i.e. services. The information model comes along
regardless objects. Modelling of implementation in OO (including DDD) comes
next. In other words, it is the service that defines its boundaries, not
the objects that realise the service. As a consequence, BTW, DOSOM or
service design prevents objects underneath to share inheritance that
crosses the service boundaries other way than via official public
interfaces (DDD does not have such constraint and can easily couple service
via implementation).
Everything you said about Naked objects and ISIS re UI is absolutely
right but problem is not in there. The problem is in that modelling
independent functions/features and even very small
functions-services-actions does not follow the OO principles of inheritance
and encapsulation. A service does not own data but only meta-data, i.e.
related ontology and semantic. Services do not inherit functionality - they
hire fufunctionality from outside providers.
I do not say that functionality modelling is a prerogative of SOA. I
simply do not know any other concept that would better perform this task.
I do not accept a blame on SOA for the silly actions of some business
people - even modern COTS as a service is a seldom (if ever) matter.
Maximum what they usually provide is a set of interfaces including Web
Services but this does not make them services - a castle door of your
sugar-house does not make it a mansion (e.f. SAP and its hundreds of
"services").
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Hi Michael,
I think you may be missing the point (or maybe I am - I'm always open to
reasoned correction). The drive to take a domain oriented approach in
application development by the likes of Coad, Evans, Haywood etc. was
always about an approach that the business could easily engage with,
transfer domain knowledge to the developers, build consensus, etc..
I personally think that Evans went too far in his book in describing
technical foundation design that was unnecessary in the context of the
objective of the book.
Naked objects and ISIS is a breath of fresh air - allows developers to
lift their head out of the plumbing and do rapid and agile interactive
development with the business SMEs that verifies the problem domain and
provides a loosely coupled and durable consensus based problem domain
model. Even if they took the resulting problem domain (business objects)
layer and bolted on a non-generated conventional UI using the UI framework
of their choice or wrapped it with Spring or other full stack framework
once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of
software development - the magpie like focus on the UI at the expense of
the business layer which usually results in the business layer being
tightly coupled within, brittle, anemic, coupled to the UI layer and
difficult/expensive to bolt on another UI when required. You can always
improve the UI after you've reached agreement on the business objects
(problem domain model). All non-trivial business applications should have a
rich domain model (Coad, Evans, Fowler, ...) rich domain models have both
data and behaviour (the functional aspects of the model), with behavior
being the most important focus (has the most influence on the model shape).
The problem domain (business layer) should always be independent of the UI
and SI (system integration) layers. By following this design pattern,
bolting on a "service" version of the "UI" layer is relative straight
forward.
You talk about a function-oriented view as if it were the exclusive
preserve of SOA. I personally think you mixing up cause and effect here
(poor software development practice that left out the DDD approach, leading
to the need (to attempt) to "fix" it with SOA). I do however acknowledge
that it is not only poor software development practice but the business
trend to buy COTS based business apps that has been a significant
contributer to the need to (attempt to) "fix" it with SOA. But then why
wouldn't SOA also be susceptible to poor practices?
What I like about SOA is that it lifts us above the technology and the
legacy contraints so that we can properly think about the business context
without it being distorted by the system implementations. What then do we
have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using
JSON) over maybe an equivalent SOAP/xml version would most likely have been
the fact that he had in mind paving the way for Javascript/Ajax based UI
version of the other (generated) viewers in the ISIS suite.
Regards,
David.
------------------------------
*Sent:* Friday, 1 February 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Well, I do not see any new needs in spite of several new technologies in
your response, David. I am not a 'church' person any more (before I had
this sin re Java) and I see a 'new' division in SW development that started
with CORBA but clearly materialised only after 2006. This division is
between object-oriented view on business problems and related development
(DDD from Eric Evans including Naked Objects and RestfulObjects) and
function-oriented view, which is much closer to the business world than the
model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my
DOSOM approach. He agreed that while he used 'service' terminology and
business domain approach, his DDD did not look further than objects (DOSOM
defines boundaries of Business Service first and only then engages DDD to
fill in the service body allowing no exposure of object's API into the
level of services including their interfaces).
I think that the future for in-house developers is not bright - IT will
transition into a Cloud dispatcher role while developers will move onto
Cloud vendor's side. The shift will be on WHAT technology does for business
and WHY while the HOW part will be more and more 'commoditised' (because of
'economy of scale').
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 1:40 AM
*Subject:* [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you
will get the picture.
Then the full irony will be appreciated - application development as is it
would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Steve Jones
2013-02-03 00:10:37 UTC
Permalink
"What then do we have to be distracted with JSON vs XML, soap vs Restful
... debates?"

+1 million....
http://service-architecture.blogspot.co.uk/2006/05/soap-v-rest-more-pointless-than-vi-v.html

The problem is that people in technology refuse to accept that integration
is a commodity, it has no value the only important bit is to create a way
of enabling A to call B. I get dragged into REST v SOAP not because I
think SOAP is great (ASCII RPC) but because REST hasn't improved anything.

If we decided to just 'pick one' and develop around it while accepting some
minor technical limitations, hell lets agree on two approaches: REST for
consumer focused 'publisher' APIs and WSDL for enterprise focused
'collaborative' APIs we'd be better off than this cluster fuck of
non-evolution which ignores the real challenge of enterprise integration
which is to provide a framework via which PEOPLE can agree on the way
forwards.

The last 6 years have been the first time I've ever seen IT go backwards in
maturity.

Steve
Post by David Tildesley
**
Hi Michael,
I think you may be missing the point (or maybe I am - I'm always open to
reasoned correction). The drive to take a domain oriented approach in
application development by the likes of Coad, Evans, Haywood etc. was
always about an approach that the business could easily engage with,
transfer domain knowledge to the developers, build consensus, etc..
I personally think that Evans went too far in his book in describing
technical foundation design that was unnecessary in the context of the
objective of the book.
Naked objects and ISIS is a breath of fresh air - allows developers to
lift their head out of the plumbing and do rapid and agile interactive
development with the business SMEs that verifies the problem domain and
provides a loosely coupled and durable consensus based problem domain
model. Even if they took the resulting problem domain (business objects)
layer and bolted on a non-generated conventional UI using the UI framework
of their choice or wrapped it with Spring or other full stack framework
once the model was settled, the advantages are significant.
Naked objects, in one fell swoop removed one of the biggest de-railers of
software development - the magpie like focus on the UI at the expense of
the business layer which usually results in the business layer being
tightly coupled within, brittle, anemic, coupled to the UI layer and
difficult/expensive to bolt on another UI when required. You can always
improve the UI after you've reached agreement on the business objects
(problem domain model). All non-trivial business applications should have a
rich domain model (Coad, Evans, Fowler, ...) rich domain models have both
data and behaviour (the functional aspects of the model), with behavior
being the most important focus (has the most influence on the model shape).
The problem domain (business layer) should always be independent of the UI
and SI (system integration) layers. By following this design pattern,
bolting on a "service" version of the "UI" layer is relative straight
forward.
You talk about a function-oriented view as if it were the exclusive
preserve of SOA. I personally think you mixing up cause and effect here
(poor software development practice that left out the DDD approach, leading
to the need (to attempt) to "fix" it with SOA). I do however acknowledge
that it is not only poor software development practice but the business
trend to buy COTS based business apps that has been a significant
contributer to the need to (attempt to) "fix" it with SOA. But then why
wouldn't SOA also be susceptible to poor practices?
What I like about SOA is that it lifts us above the technology and the
legacy contraints so that we can properly think about the business context
without it being distorted by the system implementations. What then do we
have to be distracted with JSON vs XML, soap vs Restful ... debates?
Finally, Dan's motivation for prioritising a RestfulObject API (using
JSON) over maybe an equivalent SOAP/xml version would most likely have been
the fact that he had in mind paving the way for Javascript/Ajax based UI
version of the other (generated) viewers in the ISIS suite.
Regards,
David.
------------------------------
*Sent:* Friday, 1 February 2013 11:56 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Well, I do not see any new needs in spite of several new technologies in
your response, David. I am not a 'church' person any more (before I had
this sin re Java) and I see a 'new' division in SW development that started
with CORBA but clearly materialised only after 2006. This division is
between object-oriented view on business problems and related development
(DDD from Eric Evans including Naked Objects and RestfulObjects) and
function-oriented view, which is much closer to the business world than the
model of object and informational resources (REST).
A few years ago, I talked with Eric about DDD and SOA representing him my
DOSOM approach. He agreed that while he used 'service' terminology and
business domain approach, his DDD did not look further than objects (DOSOM
defines boundaries of Business Service first and only then engages DDD to
fill in the service body allowing no exposure of object's API into the
level of services including their interfaces).
I think that the future for in-house developers is not bright - IT will
transition into a Cloud dispatcher role while developers will move onto
Cloud vendor's side. The shift will be on WHAT technology does for business
and WHY while the HOW part will be more and more 'commoditised' (because of
'economy of scale').
- Michael
------------------------------
*Sent:* Friday, February 1, 2013 1:40 AM
*Subject:* [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you
will get the picture.
Then the full irony will be appreciated - application development as is it
would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Anne Manes
2013-02-01 13:38:57 UTC
Permalink
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.

A few additional points:

- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API - http://developer.netflix.com/

-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.

- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.

- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients that
still don't understand that RESTful HTTP is more scalable, more secure, and
more flexible than SOAP, but that number is dwindling. REST is definitely
gaining traction.

Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you
will get the picture.
Then the full irony will be appreciated - application development as is it
would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
'cvml', 'service-orientated-architecture%40yahoogroups.com');>, Michael
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-01 16:50:17 UTC
Permalink
Hi Anne, glad to hear from you.

I have to confess I spent a few days talking with Alex about capabilities of REST and I think that was a great education.

There are three questions:

* what REST can do?
* what REST can do better than anybody else?
* do we need REST if we can do the same as REST does by different means?
The last question is a bit silly and reminds me my conversation 13 years old when Lotus experts assured me that they could do in Lotus Script anything that Java could do that time. So, "there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE)" is not an argument to me because it does not answer the question - why we need REST for this if we have another method already. 

Actually, you have explained the major limitation of REST that makes your referred above statement a bit uncertain - you said, "The first key to understanding REST is that the API is defined by the
resource model (the nouns) rather than the methods (the verbs). " If I need to operate with verbs primarily or with verbs and nouns in consistent way, why I would choose a method/REST that had not been designed for this task (even if it can do something with limited vocabulary of verbs)?

I do not want to re-design my model and convert it into nouns-only (resource-only) for the sake of REST in spite of this model has extensibility. I need a model that works as close to the business functional environment as possible while information (resource/noun) is only a part of it. [I am afraid that IT people have problems to understand what I just said because they focus in an information only]. I do not care how many technologies can use REST; things like .Net apps, scripting apps, mobile apps, web browsers, excel spreadsheets, mash up tools can use Java as well, i.e. they can use Web Services. The question is which one to use where or what for.

Another question is - do we need REST everywhere even if we can use it? I DO NOT say that I prefer Web Services over the REST  - every
technology is good for particular tasks: REST - for nouns/resources, Web
Services - for verbs and some nouns/resources.

I cannot agree with you in "REST is absolutely gaining ground as the preferred way to implement services and integration within corporate IT." First, I do not care about SOAP or SOAP over HTTP, or REST(HTTP). Second, it was you who in 2009 announced a death of IT "SOA" focused on integration only. If an IT needs an integration, it can use whatever suitable technology - REST or Web Services - this is almost irrelevant to Services. As we know from OASIS, Service is not about resources, it is about capabilities (implemented function) that may use this or that resource. Modern SOA is about business functionality, not about connectivity interfaces (and REST is not even an interface but a sophisticated communication protocol leading to the resource). I am not saying the REST is worse than something, but I say that it covers very limited area of functionality and, thus, may not be suitable for a lot of business tasks (forget about IT, the world is outside of
IT).

Yes, "REST is definitely gaining traction" but we know already that it is not a panacea and it is not good for Services (verbs). It is possible that Web Services are not good as well but they were and are good enough.

- Michael
________________________________
Sent: Friday, February 1, 2013 1:38 PM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Hi guys. It's been a while since I dropped into this conversation. I see we're still having the SOAP vs REST debate. Alex - I applaud you for continuing to educate Steve and Michael. I'm not sure it's a worthy cause. I doubt they will ever accept enlightenment. But I'll give it a try anyway. 
A few additional points: 
- there's no service for which I cannot devise a RESTful API based on resources and the uniform set of methods (GET, PUT, POST, and DELETE). The first key to understanding REST is that the API is defined by the resource model (the nouns) rather than the methods (the verbs). This is most definitely a matter of design, not just a matter of coding. The resource model determines how useful and useable the API is. For an example of a great RESTful API, check out the Netflix API - http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also dynamically extensible. I'm sure you can appreciate the advantages afforded by a dynamically extensible API. 
- a RESTful API can be accessed by a much broader set of potential consumers than a SOAP API, including Java and .Net apps, scripting apps, mobile apps, web browsers, excel spreadsheets, mash up tools, etc. 
- REST is absolutely gaining ground as the preferred way to implement services and integration within corporate IT. I have plenty of clients that still don't understand that RESTful HTTP is more scalable, more secure, and more flexible than SOAP, but that number is dwindling. REST is definitely gaining traction. 
Anne
Post by David Tildesley
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Todd Biske
2013-02-01 17:32:27 UTC
Permalink
What I've found that helps these discussions is some concrete side-by-side examples. Anyone have any before/after examples that clearly show, "here's what things looked like when we were using SOAP" and "here's what things look like now with REST"? There are certainly examples of SOAP, and examples of REST, but I haven't run across one that showed a transition from SOAP to by-the-book REST.

I don't have any, otherwise I'd share. Most of what I've seen falls more into the category of XML/HTTP, and not REST. In other words, strip off all of the SOAP envelope and get rid of WSDL, and just work with raw XSD with a unique URL for each operation (and not necessarily using GET/PUT/POST/DELETE).

-tb

Todd Biske
Sent from my iPad
Hi guys. It's been a while since I dropped into this conversation. I see we're still having the SOAP vs REST debate. Alex - I applaud you for continuing to educate Steve and Michael. I'm not sure it's a worthy cause. I doubt they will ever accept enlightenment. But I'll give it a try anyway.
- there's no service for which I cannot devise a RESTful API based on resources and the uniform set of methods (GET, PUT, POST, and DELETE). The first key to understanding REST is that the API is defined by the resource model (the nouns) rather than the methods (the verbs). This is most definitely a matter of design, not just a matter of coding. The resource model determines how useful and useable the API is. For an example of a great RESTful API, check out the Netflix API - http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also dynamically extensible. I'm sure you can appreciate the advantages afforded by a dynamically extensible API.
- a RESTful API can be accessed by a much broader set of potential consumers than a SOAP API, including Java and .Net apps, scripting apps, mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
- REST is absolutely gaining ground as the preferred way to implement services and integration within corporate IT. I have plenty of clients that still don't understand that RESTful HTTP is more scalable, more secure, and more flexible than SOAP, but that number is dwindling. REST is definitely gaining traction.
Anne
Post by David Tildesley
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
Â
I remember doing that with Web Services in 2000... Â and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Michael Poulin
2013-02-01 17:58:24 UTC
Permalink
When I put an operation/action name at the end of a unique URL (as a resourse), this is not REST either because that verb is not a resourse.
- Michael
________________________________
Sent: Friday, February 1, 2013 5:32 PM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
What I've found that helps these discussions is some concrete side-by-side examples.  Anyone have any before/after examples that clearly show, "here's what things looked like when we were using SOAP" and "here's what things look like now with REST"?  There are certainly examples of SOAP, and examples of REST, but I haven't run across one that showed a transition from SOAP to by-the-book REST.
I don't have any, otherwise I'd share.  Most of what I've seen falls more into the category of XML/HTTP, and not REST.  In other words, strip off all of the SOAP envelope and get rid of WSDL, and just work with raw XSD with a unique URL for each operation (and not necessarily using GET/PUT/POST/DELETE).
-tb
Todd Biske
Sent from my iPad
 
Hi guys. It's been a while since I dropped into this conversation. I see we're still having the SOAP vs REST debate. Alex - I applaud you for continuing to educate Steve and Michael. I'm not sure it's a worthy cause. I doubt they will ever accept enlightenment. But I'll give it a try anyway. 
A few additional points: 
- there's no service for which I cannot devise a RESTful API based on resources and the uniform set of methods (GET, PUT, POST, and DELETE). The first key to understanding REST is that the API is defined by the resource model (the nouns) rather than the methods (the verbs). This is most definitely a matter of design, not just a matter of coding. The resource model determines how useful and useable the API is. For an example of a great RESTful API, check out the Netflix API - http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also dynamically extensible. I'm sure you can appreciate the advantages afforded by a dynamically extensible API. 
- a RESTful API can be accessed by a much broader set of potential consumers than a SOAP API, including Java and .Net apps, scripting apps, mobile apps, web browsers, excel spreadsheets, mash up tools, etc. 
- REST is absolutely gaining ground as the preferred way to implement services and integration within corporate IT. I have plenty of clients that still don't understand that RESTful HTTP is more scalable, more secure, and more flexible than SOAP, but that number is dwindling. REST is definitely gaining traction. 
Anne
Post by David Tildesley
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Anne Manes
2013-02-02 14:28:09 UTC
Permalink
Hi Todd,

A great many so-called "REST" APIs are in fact verb-oriented HTTP APIs, as
you say. A couple of great examples of non-RESTful HTTP APIs are the Flickr
API: http://www.flickr.com/services/api/ and the legacy Facebook API:
https://developers.facebook.com/docs/reference/rest/. All the URLs
represent verbs, and you use query parameters to specify what you want to
do. This is what Richardson refers to as Level 0 -- "The swamp pf POX".

Compare that to a Level 1 REST API -- one that uses resources, but doesn't
leverage the HTTP verbs or HATEOAS. Something like the Twitter API:
https://dev.twitter.com/docs/api/1.1. Here the URLs kinda represent
resources, but you still have to use query parameters to specify the
particular domain object and behavior you want to interact with.

A RESTful API encapsulates all the business logic within the resources --
you access the full behavior of the system directly through those
resources. In my last post I suggested looking at the Netflix API for a
Level 3 RESTful API that exposes the domain model directly as the API.

Most Java and .NET developers typically encapsulate their domain model and
expose it through a set of verbs. Essentially, they have a facade that maps
the verbs to the domain model.

If you now want to expose this method-oriented API via a resource-oriented
interface, you have to create another facade that maps the resource model
to the methods, which then maps the methods to the domain model. Seems like
a waste of effort, doesn't it?

Another option is to directly expose the domain model. That's what the
Naked Objects design pattern (http://en.wikipedia.org/wiki/Naked_objects)
is all about. Essentially, the domain model is the API. Dan's presentation
(which started this thread) gives a nice overview of this design pattern
and the RESTful Objects spec (http://en.wikipedia.org/wiki/Restful_Objects)
which describes a framework for implementing the design pattern. The Java (
http://isis.apache.org/) and .NET (http://restfulobjects.codeplex.com/)
implementations of this spec make it trivial to implement apps using this
design pattern.

This is a fundamentally different design pattern -- which is why I said in
my last message that REST is entirely about design -- not just code.

For an example of a SOAP versus RESTful API. Take a look at the Hoovers API.
REST API for obtaining company info:
http://developer.hoovers.com/docs40/companyrest
SOAP API for the same: http://developer.hoovers.com/docs40/company

Now, in answer to Michael's question about why:
- A RESTful API is much more versatile than an RPC API. I can use exactly
the same API for web apps, mobile apps, and programmatic apps. I dont need
to define multiple APIs for different types of users. And, if you really
want to expose a method-oriented API, it isn't hard to encapsulate the
domain model and expose the verbs. (On the other hand, most Java/.NET
developers can handle working directly with a domain model. You really
don't need to provide the methods.)
- You are already using REST -- your Web applications are REST.
- REST requires nothing more than HTTP -- REST *is* HTTP. Pretty much any
environment has built-in support for HTTP. You don't need to concern
yourself with finding a SOAP client for, say, iOS.
- You secure RESTful APIs using exactly the same technologies that you use
to secure your Web applications. REST gets support for new authN/Z systems
before any other middleware system. It is the leading edge.
- REST is much more scalable and adaptable than RPC.

Why would you continue to use an antiquated, limited-function middleware
system like SOAP when you can use a much more pervasive, much more
powerful, and much more flexible system like HTTP and the Web?

I'm not suggesting that you go back and convert all existing APIs to REST.
Let business requirements drive those types of migration/modernization
efforts. But I am suggesting that your should stop building SOAP APIs and
start building REST APIs for your new services.

Anne
Post by Todd Biske
**
What I've found that helps these discussions is some concrete side-by-side
examples. Anyone have any before/after examples that clearly show, "here's
what things looked like when we were using SOAP" and "here's what things
look like now with REST"? There are certainly examples of SOAP, and
examples of REST, but I haven't run across one that showed a transition
from SOAP to by-the-book REST.
I don't have any, otherwise I'd share. Most of what I've seen falls more
into the category of XML/HTTP, and not REST. In other words, strip off all
of the SOAP envelope and get rid of WSDL, and just work with raw XSD with a
unique URL for each operation (and not necessarily using
GET/PUT/POST/DELETE).
-tb
Todd Biske
Sent from my iPad
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Steve Jones
2013-02-03 00:30:33 UTC
Permalink
"- You are already using REST -- your Web applications are REST."

Anne surely you aren't pedalling this lie? I'm really disappointed. I can
point to loads of Web Apps out there where GET isn't idempotent for
starters and as you yourself have pointed out even the web companies out
there who publish REST APIs are mostly not even doing that.

Tell you what, I'll do you a deal. You get SAP and Oracle to release all
of their ERP integration pieces as REST out of the box and get an agreement
on a common way to document and publish REST APIs (including schemas
against requests) then I'm in. I've previously said (

That is all I've ever asked, and when WSDL came around I got it in a couple
of years. I'm fed up of people recommending switching to a shiny new
technology when they can't even match the functional level of the old one
after six years of hype. This is a million times worse in integration
where 99.9999% of the transactions out there don't need Facebook or Google
scale but do need the human simplicity of an interface that can be
important from one environment into another so you can understand the
interface in your context.

The hype on REST and the cluster fuck on Java have delivered a less mature
and less efficient IT landscape than we had 6 years ago. Its more
fragmented in areas where fragmentation can add no value. Its fine to
recommend 'build new stuff in REST' but folks at analyst firms have been
saying that for 7+ years and I'm not exactly seeing the same adoption that
WSDL managed in the same period of time.

Can we please stop flogging the horse.

Steve
Post by Anne Manes
**
Hi Todd,
A great many so-called "REST" APIs are in fact verb-oriented HTTP APIs, as
you say. A couple of great examples of non-RESTful HTTP APIs are the Flickr
https://developers.facebook.com/docs/reference/rest/. All the URLs
represent verbs, and you use query parameters to specify what you want to
do. This is what Richardson refers to as Level 0 -- "The swamp pf POX".
Compare that to a Level 1 REST API -- one that uses resources, but doesn't
https://dev.twitter.com/docs/api/1.1. Here the URLs kinda represent
resources, but you still have to use query parameters to specify the
particular domain object and behavior you want to interact with.
A RESTful API encapsulates all the business logic within the resources --
you access the full behavior of the system directly through those
resources. In my last post I suggested looking at the Netflix API for a
Level 3 RESTful API that exposes the domain model directly as the API.
Most Java and .NET developers typically encapsulate their domain model and
expose it through a set of verbs. Essentially, they have a facade that maps
the verbs to the domain model.
If you now want to expose this method-oriented API via a resource-oriented
interface, you have to create another facade that maps the resource model
to the methods, which then maps the methods to the domain model. Seems like
a waste of effort, doesn't it?
Another option is to directly expose the domain model. That's what the
Naked Objects design pattern (http://en.wikipedia.org/wiki/Naked_objects)
is all about. Essentially, the domain model is the API. Dan's presentation
(which started this thread) gives a nice overview of this design pattern
and the RESTful Objects spec (http://en.wikipedia.org/wiki/Restful_Objects)
which describes a framework for implementing the design pattern. The Java (
http://isis.apache.org/) and .NET (http://restfulobjects.codeplex.com/)
implementations of this spec make it trivial to implement apps using this
design pattern.
This is a fundamentally different design pattern -- which is why I said in
my last message that REST is entirely about design -- not just code.
For an example of a SOAP versus RESTful API. Take a look at the Hoovers API.
http://developer.hoovers.com/docs40/companyrest
SOAP API for the same: http://developer.hoovers.com/docs40/company
- A RESTful API is much more versatile than an RPC API. I can use exactly
the same API for web apps, mobile apps, and programmatic apps. I dont need
to define multiple APIs for different types of users. And, if you really
want to expose a method-oriented API, it isn't hard to encapsulate the
domain model and expose the verbs. (On the other hand, most Java/.NET
developers can handle working directly with a domain model. You really
don't need to provide the methods.)
- You are already using REST -- your Web applications are REST.
- REST requires nothing more than HTTP -- REST *is* HTTP. Pretty much any
environment has built-in support for HTTP. You don't need to concern
yourself with finding a SOAP client for, say, iOS.
- You secure RESTful APIs using exactly the same technologies that you use
to secure your Web applications. REST gets support for new authN/Z systems
before any other middleware system. It is the leading edge.
- REST is much more scalable and adaptable than RPC.
Why would you continue to use an antiquated, limited-function middleware
system like SOAP when you can use a much more pervasive, much more
powerful, and much more flexible system like HTTP and the Web?
I'm not suggesting that you go back and convert all existing APIs to REST.
Let business requirements drive those types of migration/modernization
efforts. But I am suggesting that your should stop building SOAP APIs and
start building REST APIs for your new services.
Anne
Post by Todd Biske
**
What I've found that helps these discussions is some concrete
side-by-side examples. Anyone have any before/after examples that clearly
show, "here's what things looked like when we were using SOAP" and "here's
what things look like now with REST"? There are certainly examples of
SOAP, and examples of REST, but I haven't run across one that showed a
transition from SOAP to by-the-book REST.
I don't have any, otherwise I'd share. Most of what I've seen falls more
into the category of XML/HTTP, and not REST. In other words, strip off all
of the SOAP envelope and get rid of WSDL, and just work with raw XSD with a
unique URL for each operation (and not necessarily using
GET/PUT/POST/DELETE).
-tb
Todd Biske
Sent from my iPad
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects -
A Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Post by Michael Poulin
Post by David Tildesley
Post by Skills
Mark
Mark Baker
2013-02-03 08:05:25 UTC
Permalink
Post by Steve Jones
"- You are already using REST -- your Web applications are REST."
Anne surely you aren't pedalling this lie? I'm really disappointed. I can
point to loads of Web Apps out there where GET isn't idempotent for starters
Steve - that would be interesting if not for the fact that REST doesn't
care about GET safety or idempotence.

Anne is wrong - or more accurately, not completely right - because most Web
apps use cookies in a way that breaks the stateless constraint. But
effectively *all* use the uniform interface, including hypermedia, and that
gives you the bulk of the value (its architectural properties) of REST.

I really wish people talked more about architectural properties. Yes, there
are many different architectural styles that can be brought to bear on a
particular problem, but no, not all are created equal just because they are
competitive in this way. Some solutions are more or less difficult to
evolve. Some are more or less difficult to scale (choose your
dimension(s)). Some are more or less reliable in the face of partial
failure. Some perform better than others, etc, etc, etc .. We have had a
framework for evaluating a style's suitability for a particular problem for
over 20 years, and an understanding of the architectural properties
necessary for Internet scale computing for the past ~10 years (at least
using this same framework). It's a crying shame that conversations like
this one aren't in those terms.

Mark.
Steve Jones
2013-02-02 23:59:31 UTC
Permalink
+1 from me. There is apparently a whole set of people out there who I'm in
no way connected to who are doing this stuff, what I've seen is the same as
you.

Steve
Post by Todd Biske
**
What I've found that helps these discussions is some concrete side-by-side
examples. Anyone have any before/after examples that clearly show, "here's
what things looked like when we were using SOAP" and "here's what things
look like now with REST"? There are certainly examples of SOAP, and
examples of REST, but I haven't run across one that showed a transition
from SOAP to by-the-book REST.
I don't have any, otherwise I'd share. Most of what I've seen falls more
into the category of XML/HTTP, and not REST. In other words, strip off all
of the SOAP envelope and get rid of WSDL, and just work with raw XSD with a
unique URL for each operation (and not necessarily using
GET/PUT/POST/DELETE).
-tb
Todd Biske
Sent from my iPad
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
David Tildesley
2013-02-02 00:23:53 UTC
Permalink
Hi Anne,

Thanks. Can you please explain the "... more secure ..." bit? How is it more secure?

David.


________________________________
From: Anne Manes <atmanes-***@public.gmane.org>
To: "service-orientated-architecture-***@public.gmane.org" <service-orientated-architecture-***@public.gmane.org>
Sent: Saturday, 2 February 2013 2:38 AM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood


 
Hi guys. It's been a while since I dropped into this conversation. I see we're still having the SOAP vs REST debate. Alex - I applaud you for continuing to educate Steve and Michael. I'm not sure it's a worthy cause. I doubt they will ever accept enlightenment. But I'll give it a try anyway. 

A few additional points: 

- there's no service for which I cannot devise a RESTful API based on resources and the uniform set of methods (GET, PUT, POST, and DELETE). The first key to understanding REST is that the API is defined by the resource model (the nouns) rather than the methods (the verbs). This is most definitely a matter of design, not just a matter of coding. The resource model determines how useful and useable the API is. For an example of a great RESTful API, check out the Netflix API - http://developer.netflix.com/

-Because the resource model is dynamically extensible, the API is also dynamically extensible. I'm sure you can appreciate the advantages afforded by a dynamically extensible API. 

- a RESTful API can be accessed by a much broader set of potential consumers than a SOAP API, including Java and .Net apps, scripting apps, mobile apps, web browsers, excel spreadsheets, mash up tools, etc. 

- REST is absolutely gaining ground as the preferred way to implement services and integration within corporate IT. I have plenty of clients that still don't understand that RESTful HTTP is more scalable, more secure, and more flexible than SOAP, but that number is dwindling. REST is definitely gaining traction. 

Anne
Post by David Tildesley
 
It's a little off topic for SOA (choice of soap, restful, json, xml - that's detail you probably aren't too fussed about), but if you read Dan's book "DDD using Naked Objects" then you will completely understand the motivation for RestfulObjects even though RestfulObjects post dates the book which came out a few years ago (before Apache ISIS 1.0 with is next version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and you will get the picture.
Then the full irony will be appreciated - application development as is it would have been if it weren't broken by a mixture of EJB, Corba, COM, expensive and overblown vendor frameworks and dumbed down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
I remember doing that with Web Services in 2000...  and I got an XML doc I could give to my consumers from which they could generate the client side.
How we've progressed in 13 years.
Steve
Post by David Tildesley
 
I like it. If you want to see it in action, maven the ISIS example archetype from apache ISIS project which generates a Restful Objects (application) service straight from the application's domain objects . Then just GET around the resfulobjects interface using a browser to get a feel for it (would pay you to first use the wicket viewer to understand the domain of the app and run the fixture as user "sven" to populate some "ToDos)
David.
Post by Skills
REST architectures are becoming increasingly more common, both on the internet and within the enterprise. Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Ashraf Galal
2013-02-02 13:11:12 UTC
Permalink
The main difference between SOAP and REST is the fact that while REST is
implemented directly on top of the HTTP protocol, SOAP introduces an
abstraction layer (SOAP messaging), that can be implemented on top of
any transport.
Standardized SOAP bindings currently exist for HTTP, SMTP and JMS, but
non-standard bindings have been implemented for other transport solutions.
This additional abstraction layer that provides decoupling between
existing transports and SOAP-based implementations is the root cause of
major differences between SOAP and REST Web Services.


I think the vendors do the right thing by supporting both REST and SOAP,
because REST is best fit into B2C interactions but not with B2B
interactions.


This was my opinion in my dissertation back to 2007.

Trying to limit SOA implementation to a single transport- HTTP - rarely
works in practice.


Yes, HTTP is ubiquitous and its usage typically does not require any
additional infrastructure investments, but it is not reliable (HTTP-R is
not widely adopted), synchronous only(creating temporal coupling), does
not have transactional semantics and so on.

Additionally, even if HTTP is the only transport used in implementation,
the SOAP envelope can become very handy for a clean separation of
business (SOAP Body) and infrastructure or out-of-bound (SOAP Headers)
data in SOAP messages.
And finally, if your original implementation does not require any
infrastructure or out-of-bound data, the overhead of the SOAP envelope
is minimal – two tags, but provides a well-defined way for adding such
data as the need arises.

So, at the end of the day, data enveloping with separation of business
and infrastructure concerns is a very powerful paradigm, which is often
used even in the REST Web Services implementations.
Whether to use a standardized SOAP or a custom enveloping schema has to
be decided by a specific implementation.

A popular opinion is that REST is much simpler then SOAP.

According to them, REST simplicity stems from the fact that REST does
not require WSDL or any interface definition.

No matter which technology is used for communications between service
consumer and provider, they must still agree on both syntax and semantic
of their message exchange (interface). This means that in the case of
REST, one of two approaches is possible:

* Defining an interface in a text document and “manually” coding of
data marshalling/unmarshalling based on a common interface
definition described in the interface document. Although such an
approach is often promoted by REST advocates, it rarely scales
beyond 10 - 15 elements, which is not typical for coarse grained
REST services. Besides, such an approach is very error prone and as
a result, most of the available REST frameworks have abandoned it in
favor of the next approach.
* Defining an interface on the XSD level and generation of the data
marshalling/unmarshalling based on the preferred framework (for
example, JAXB or Castor in the case of XML payload or Jackson, in
the case of JSON payload). Such an approach is, in effect, a
minimalistic version of WSDL and requires about the same amount of
effort as SOAP-based implementations. In fact, exactly the same
approach is often used in the SOAP-based implementation, leveraging
a single interface and a command pattern for service execution. The
extension of this approach is usage of WSDL2.0 and/or WADL for REST.

Another common complaint about SOAP is perceived complexity of WS*
standards.

Although there is no single spec that lays out the key WS*standards and
their interrelationships, there is a standard for a majority of service
interaction use cases.

Granted, the choosing of an appropriate WS*standard and its usage might
require some extra understanding/implementation time, but [16]:

“Arguing simplicity versus standards is ridiculous in the war between
REST and SOA because simplicity without standards is just as detrimental
to the costs and manageability of an application “

So, with the exception of the most simplistic examples like “temperature
converters”, REST is not any more simple than SOAP.

Thanks to *Boris Lublinsky <http://www.infoq.com/author/Boris-Lublinsky>*

All the best

Ashraf Galal
Post by Michael Poulin
Hi Anne,
Thanks. Can you please explain the "... more secure ..." bit? How is it more secure?
David.
------------------------------------------------------------------------
*Sent:* Saturday, 2 February 2013 2:38 AM
*Subject:* Re: [service-orientated-architecture] Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Hi guys. It's been a while since I dropped into this conversation. I
see we're still having the SOAP vs REST debate. Alex - I applaud you
for continuing to educate Steve and Michael. I'm not sure it's a
worthy cause. I doubt they will ever accept enlightenment. But I'll
give it a try anyway.
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and
DELETE). The first key to understanding REST is that the API is
defined by the resource model (the nouns) rather than the methods (the
verbs). This is most definitely a matter of design, not just a matter
of coding. The resource model determines how useful and useable the
API is. For an example of a great RESTful API, check out the Netflix
API - http://developer.netflix.com/
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages
afforded by a dynamically extensible API.
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting
apps, mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling.
REST is definitely gaining traction.
Anne
It's a little off topic for SOA (choice of soap, restful, json,
xml - that's detail you probably aren't too fussed about), but if
you read Dan's book "DDD using Naked Objects" then you will
completely understand the motivation for RestfulObjects even
though RestfulObjects post dates the book which came out a few
years ago (before Apache ISIS 1.0 with is next version of Naked
Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site
and you will get the picture.
Then the full irony will be appreciated - application development
as is it would have been if it weren't broken by a mixture of EJB,
Corba, COM, expensive and overblown vendor frameworks and dumbed
down developers, project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful
Objects - A Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got
an XML doc I could give to my consumers from which they could
generate the client side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS
example archetype from apache ISIS project which generates a
Restful Objects (application) service straight from the
application's domain objects . Then just GET around the
resfulobjects interface using a browser to get a feel for it
(would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate
some "ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common,
both on the internet and within the enterprise. Behind most of
these REST APIs is a domain model (some anaemic, some less so);
the wiring up of that REST API to the model involves lots of
boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Post by Michael Poulin
Post by David Tildesley
Post by Skills
Mark
Alexander Johannesen
2013-02-02 20:36:15 UTC
Permalink
Post by Ashraf Galal
The main difference between SOAP and REST is the fact that
while REST is implemented directly on top of the HTTP protocol,
SOAP introduces an abstraction layer (SOAP messaging), that
can be implemented on top of any transport.
Hmm, that's actually misleading. REST is just as abstract and
technology agnostic as SOAP. It was developed at the same time as HTTP
- and, indeed, HTTP is the largest and most famous implementation of
REST - but does not rely on it.

Also, the SOAP envelope is almost identical to the HTML envelope (few
people seem to realize the header/body dichotomy similarities), and
I'd be hard pressed to find SOAP gliding over non-HTTP based
infra-structure.

No, if I'd point out differences, I'd choose ;
1) resource-orientation, where big and small systems are spread out
2) REST is simpler and more generic than SOAP
3) REST is supported by more tools, unknowingly
4) REST is harder to understand because of its higher-order flexibility
Post by Ashraf Galal
I think the vendors do the right thing by supporting both REST and
SOAP, because REST is best fit into B2C interactions but not with
B2B interactions.
I think such broad categorizing is wrong. Since big business made WS
and tons of tools specifically to cater to B2B, most B2B are done
through big business and their tools. And this was done in the absence
of knowledge that REST could also do their job, not because it was
deemed unusable because, well, some businesses are indeed using it
B2B. However, people have a tendency to mean *their* B2B where they
already use WS and they can't phantom using anything else or their
industry or sector have invested billions into those tools and skills
and people.
Post by Ashraf Galal
Additionally, even if HTTP is the only transport used in implementation,
the SOAP envelope can become very handy for a clean separation of
business (SOAP Body) and infrastructure or out-of-bound (SOAP
Headers) data in SOAP messages.
You'll find this in HTML as well. In fact, a REST message have this,
as well, so I'm not sure you can claim this a WS victory.
Post by Ashraf Galal
According to them, REST simplicity stems from the fact that REST does
not require WSDL or any interface definition.
I think you need to talk to "them" more often. :) And the answer has
far more context than simply WDSL and interface definitions.
Post by Ashraf Galal
Defining an interface in a text document and “manually” coding of data
marshalling/unmarshalling based on a common interface definition
described in the interface document.
Give us an example.
Post by Ashraf Galal
Although such an approach is often promoted by REST advocates,
it rarely scales beyond 10 - 15 elements, which is not typical for coarse
grained REST services.
Currently this is a straw argument, so how doesn't it scale? What doesn't scale?
Post by Ashraf Galal
Besides, such an approach is very error prone and as a result, most
of the available REST frameworks have abandoned it in favor of the
next approach.
Again, what errors? Who's abandoned it?
Post by Ashraf Galal
Defining an interface on the XSD level and generation of the data
marshalling/unmarshalling based on the preferred framework (for
example, JAXB or Castor in the case of XML payload or Jackson,
in the case of JSON payload). Such an approach is, in effect,
a minimalistic version of WSDL and requires about the same amount
of effort as SOAP-based implementations.
What? This is all data-binding and schema variations, and has nothing
to do with interfaces as such or as a special thing. Indeed, explain
why GET / content-type/xml+xsd somehow is harder or easier than any
other means. It isn't, of course, as neither REST nor SOAP cares about
data-binding nor data schemas, so not even sure why this enters our
discussion here, unless you're talking about defining APIs inside data
objects, in which case we've left REST /SOAP several abstractions ago
... :)
Post by Ashraf Galal
Another common complaint about SOAP is perceived complexity of WS*
standards. Although there is no single spec that lays out the key WS*
standards and their interrelationships, there is a standard for a majority of
service interaction use cases.
Hmm. A lot of these are API specifications, of which REST defines
*none*, so you can't make a comparison here.
Post by Ashraf Galal
Granted, the choosing of an appropriate WS*standard and its usage might
require some extra understanding/implementation time, [...]
Understatement of the day. :)
Post by Ashraf Galal
“Arguing simplicity versus standards is ridiculous in the war between
REST and SOA because simplicity without standards is just as
detrimental to the costs and manageability of an application “
This doesn't even make sense. REST is in no way the opposite of SOA.
Is it supposed to say SOAP? Or is it supposed to say WS-*? And if so,
the argument becomes valid.
Post by Ashraf Galal
So, with the exception of the most simplistic examples like
“temperature converters”, REST is not any more simple than SOAP.
Wow. I didn't know all my enterprise BI, integration and development
were that simple! I shall promptly tell the people in charge to lower
my salary ...

Ok, maybe I'm not that good with sarchasm[1], but these statements are
in dire need of correction; they are simply wrong and mocking in tone,
and to me demonstrate a level of knowledge about the subject matter
far below par.


Regards,

Alex


[1] Sarchasm; the chasm between the person of brilliant wit and the
others who don't get it.

--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ashraf Galal
2013-02-03 20:29:42 UTC
Permalink
There is no doubt that REST is very useful specially in the B2C.

There are two approaches have emerged lately.

True REST and REST as a technology approach for services (REST web
services).

A true REST is effectively an implementation of Resource-Oriented
architecture and not a pure technology decision. So the right question
to ask when discussing true REST is whether its underpinning – ROA - is
a good fit for your SOA implementation.

In order to assess the problem correctly, let’s first recall that the
SOA architectural style is based on a functional decomposition of
enterprise business architecture and introduces two high-level
abstractions: enterprise business services and business processes.

Enterprise business services represent existing IT capabilities (aligned
with the business functions of the enterprise).

Business processes, which orchestrate business services, define the
overall functioning of the business.

REST, on another hand, is a set of architectural guidelines expressed as
Resource-Oriented Architecture (ROA).

ROA is based upon the concept of resources; each resource is a
directly-accessible distributed component that is handled through a
standard, common interface.

So, the foundation of ROA is a *resource-based
decomposition*<http://www.infoq.com/articles/RESTSOAFuture/#_ftn3_1498>.

In order to assess the applicability of true REST for the implementation
of SOA, the real question that we need to answer is “What is the
relationship between a service and a resource?”


Services vs. Resources


What is a service?

In the simplest case, a service can be defined as a self-contained,
independently developed, deployed, managed, and maintained software
implementation supporting specific business-relevant functionality for
an enterprise as a whole and is "integratable" by design.

A “Service” is defined by a verb ( For example, “*/validate/* customer’s
credit score”, which describes the business function it implements.)

A service is not a programming construct or a set of APIs, but rather an
architectural (unit of design, implementation, and maintenance) and
deployment artifact used for implementation of enterprise solutions.

The service functionality is defined by a service interface (specific
for a given service), which can be supported by multiple implementations.

There are two basic ways of defining a service interface – RPC-style and
messaging-style.

*RPC-style implementations* use service invocation *semantics and are
defined through a set of parameters in the service interface*.

In the case of messaging style, a service interface is effectively fixed
– it essentially performs “execute” - with an XML document as input and
output (much like the GoF command pattern).
A service semantic, in this case, is defined by the semantics of the
input and output
messages<http://www.infoq.com/articles/RESTSOAFuture/#_ftn4_1498>.

Historically, services are often defined as a collection of methods,
these methods are independent from each
other<http://www.infoq.com/articles/RESTSOAFuture/#_ftn5_1498>and such
collection serves as a namespace, simplifying the management of the
services.


What is a resource?

In the simplest case, a resource can be defined as a
directly-accessible, independently-developed, deployed, managed and
maintained software artifact supporting specific data.

A resource is defined by a noun for example, “doctor’s *appointment*”
that describes the data provided by the resource.

A resource can also relate to other resources and provide a reference
(link) to them.

In effect, a resource is similar to an
object<http://www.infoq.com/articles/RESTSOAFuture/#_ftn6_1498>, but
with a predefined (CRUDish) interface semantic.

The semantics in REST are based on the set of HTTP operations and looks
as follows :

* createResource - Create a new resource (and the corresponding unique
identifier) - PUT
* getResourceRepresentation - Retrieve the representation of the
resource - GET
* deleteResource - Delete the resource (optionally including linked
resources) - DELETE (referred resource only), POST (can be used if
the delete is including linked resources)
* modifyResource - Modify the resource – POST
* getMetaInformation - Obtain meta information about the resource - HEAD

A resource is defined by its URL and definition of inputs/outputs for
every operation supported by a
resource<http://www.infoq.com/articles/RESTSOAFuture/#_ftn7_1498>.

Unlike a service, where methods are completely independent and can be
deployed as independent endpoints, methods on a resource follow OO
semantics, which means that all of them (except /createResource/) have
to exist on the underlying resource (same URL).


Basic differences between Resources and Services

Based on the above definitions of resources and services, it seems
intuitively obvious that they are very different.

Let’s delve into these differences first, and then discuss how they can
impact resulting architecture.

As stated in [Dhananjay Nene. Service oriented REST architecture is an
oxymoron.
<http://blog.dhananjaynene.com/2009/10/service-oriented-rest-architecture-is-an-oxymoron/>]:

/*“Not only is REST not service oriented, service orientation is
irrelevant for REST”*/

And [Dhananjay Nene. REST is the DBMS of the Internet ]
<http://blog.dhananjaynene.com/2009/06/rest-is-the-dbms-of-the-internet/> goes
even further explaining the differences between the two as:

/*“If WS-* is the RPC of the Internet, REST is the DBMS of the
internet*/… Traditional SOA based integration visualizes different
software artifacts being able to interact with each other through
procedures or methods.

REST effectively allows each software artifact to behave as a set of
tables, and these artifacts talk to each other using SELECT, INSERT,
UPDATE and DELETE. ( or if you wish GET, PUT, POST, DELETE). And where
exactly is the business logic? Is it in the stored procedures? Not
Quite. It’s in the triggers.”

Here we will use a slightly different analogy, one based on J2EE.

We can think of services as stateless session beans and resources as
entity beans.

Services – session beans – serve as controllers allowing execution of a
required operation, regardless of the underlying resource.

For example, a debit account service might take the account ID and the
amount and debit required account. A single service can debit any of the
existing accounts.

Resources – aka entity beans – serve as a data access mechanism for a
given instance of given data type.

For example, in order to debit a certain account, it is necessary to
find a resource representing this account and then update it to debit
the required amount.

An additional caveat here is that unlike an entity bean which can
implement any required method, a REST resource has only a single /modify
resource/ method.

This means that the actual business operation, the debit, has to be
encoded as part of the request.


What does this mean?

Based on the above, it is impossible to build an SOA system using true
REST.

It is possible to build a system, but it won’t be SOA.

Both will start with the business-aligned decomposition, but because
they are using very different decomposition approaches they will result
in completely different architectural styles[Dhananjay Nene. Musings on
REST]<http://www.infoq.com/articles/RESTSOAFuture/#_ftn8_1498>based on
different set of components and connectors.

Just because they are trying to solve the same problem – business/IT
alignment and are both based on business driven decomposition *_does not
mean that the result will adhere to the same architectural style._*

Another question is whether it is possible to build a complete system
using true REST.

Based on the above, it is a question of whether it is possible to build
a complete system using only a database or entity beans.

Certainly you could, but it would require adding procedural code in the
form of stored procedures (overwriting the meaning of the methods) or
triggers (doing post processing based on the data changes).

The same is typically true for a true REST implementation – you have to
change the meaning of the modifyResource method (often using command
pattern) to do more than data update.

As a result, *a REST-based implementation is rarely true REST*; it
typically includes at least some elements of REST Web Services.

So what does it mean to be a REST Web Service?

If you want to continue discuss and complete this subject in a
scientific manner, most welcome.
Please understand that we are not evaluating each other, we have
different opinions and want to reach to the best in a respectful manner.

All the best

Ashraf Galal
Post by Alexander Johannesen
Post by Ashraf Galal
The main difference between SOAP and REST is the fact that
while REST is implemented directly on top of the HTTP protocol,
SOAP introduces an abstraction layer (SOAP messaging), that
can be implemented on top of any transport.
Hmm, that's actually misleading. REST is just as abstract and
technology agnostic as SOAP. It was developed at the same time as HTTP
- and, indeed, HTTP is the largest and most famous implementation of
REST - but does not rely on it.
Also, the SOAP envelope is almost identical to the HTML envelope (few
people seem to realize the header/body dichotomy similarities), and
I'd be hard pressed to find SOAP gliding over non-HTTP based
infra-structure.
No, if I'd point out differences, I'd choose ;
1) resource-orientation, where big and small systems are spread out
2) REST is simpler and more generic than SOAP
3) REST is supported by more tools, unknowingly
4) REST is harder to understand because of its higher-order flexibility
Post by Ashraf Galal
I think the vendors do the right thing by supporting both REST and
SOAP, because REST is best fit into B2C interactions but not with
B2B interactions.
I think such broad categorizing is wrong. Since big business made WS
and tons of tools specifically to cater to B2B, most B2B are done
through big business and their tools. And this was done in the absence
of knowledge that REST could also do their job, not because it was
deemed unusable because, well, some businesses are indeed using it
B2B. However, people have a tendency to mean *their* B2B where they
already use WS and they can't phantom using anything else or their
industry or sector have invested billions into those tools and skills
and people.
Post by Ashraf Galal
Additionally, even if HTTP is the only transport used in implementation,
the SOAP envelope can become very handy for a clean separation of
business (SOAP Body) and infrastructure or out-of-bound (SOAP
Headers) data in SOAP messages.
You'll find this in HTML as well. In fact, a REST message have this,
as well, so I'm not sure you can claim this a WS victory.
Post by Ashraf Galal
According to them, REST simplicity stems from the fact that REST does
not require WSDL or any interface definition.
I think you need to talk to "them" more often. :) And the answer has
far more context than simply WDSL and interface definitions.
Post by Ashraf Galal
Defining an interface in a text document and “manually” coding of data
marshalling/unmarshalling based on a common interface definition
described in the interface document.
Give us an example.
Post by Ashraf Galal
Although such an approach is often promoted by REST advocates,
it rarely scales beyond 10 - 15 elements, which is not typical for coarse
grained REST services.
Currently this is a straw argument, so how doesn't it scale? What doesn't scale?
Post by Ashraf Galal
Besides, such an approach is very error prone and as a result, most
of the available REST frameworks have abandoned it in favor of the
next approach.
Again, what errors? Who's abandoned it?
Post by Ashraf Galal
Defining an interface on the XSD level and generation of the data
marshalling/unmarshalling based on the preferred framework (for
example, JAXB or Castor in the case of XML payload or Jackson,
in the case of JSON payload). Such an approach is, in effect,
a minimalistic version of WSDL and requires about the same amount
of effort as SOAP-based implementations.
What? This is all data-binding and schema variations, and has nothing
to do with interfaces as such or as a special thing. Indeed, explain
why GET / content-type/xml+xsd somehow is harder or easier than any
other means. It isn't, of course, as neither REST nor SOAP cares about
data-binding nor data schemas, so not even sure why this enters our
discussion here, unless you're talking about defining APIs inside data
objects, in which case we've left REST /SOAP several abstractions ago
... :)
Post by Ashraf Galal
Another common complaint about SOAP is perceived complexity of WS*
standards. Although there is no single spec that lays out the key WS*
standards and their interrelationships, there is a standard for a majority of
service interaction use cases.
Hmm. A lot of these are API specifications, of which REST defines
*none*, so you can't make a comparison here.
Post by Ashraf Galal
Granted, the choosing of an appropriate WS*standard and its usage might
require some extra understanding/implementation time, [...]
Understatement of the day. :)
Post by Ashraf Galal
“Arguing simplicity versus standards is ridiculous in the war between
REST and SOA because simplicity without standards is just as
detrimental to the costs and manageability of an application “
This doesn't even make sense. REST is in no way the opposite of SOA.
Is it supposed to say SOAP? Or is it supposed to say WS-*? And if so,
the argument becomes valid.
Post by Ashraf Galal
So, with the exception of the most simplistic examples like
“temperature converters”, REST is not any more simple than SOAP.
Wow. I didn't know all my enterprise BI, integration and development
were that simple! I shall promptly tell the people in charge to lower
my salary ...
Ok, maybe I'm not that good with sarchasm[1], but these statements are
in dire need of correction; they are simply wrong and mocking in tone,
and to me demonstrate a level of knowledge about the subject matter
far below par.
Regards,
Alex
[1] Sarchasm; the chasm between the person of brilliant wit and the
others who don't get it.
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
------------------------------------
Yahoo! Groups Links
Michael Poulin
2013-02-03 23:15:36 UTC
Permalink
Ashraf,

I did not read the whole test but have to tell you that there is a standard that defines the service and that explains that service functionality may have nothing to do with service interfaces. The same standard states that there special Behavioral and Information Models that help Business Functionality Description to define functionality realised by the service. All these three co-exist with a set of service interfaces in the Service Description, which represents the service to its consumers. Modern SOA service is not only a SW component because SOA, more accurately - SO Ecosystem, exists in Business and Technology at the same time and a business service may and can include manual operations and manual business processes. Also, a service interface may be anything that allows a consumer to engage a service - HTTP, telephone, Web Service, FTP, e-mail, etc.

However, (a bit surprisingly) I agree with your conclusions:
"
Based on the above, it is impossible to build an SOA system using true REST.
It is possible to build a system, but it won’t be SOA.
"

- Michael
________________________________
Sent: Sunday, February 3, 2013 8:29 PM
Subject: Re: [service-orientated-architecture] Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
There is no doubt that REST is very useful specially in the B2C.
There are two approaches have emerged lately.
True REST and REST as a technology approach for services (REST web services).
A true REST is effectively an implementation of Resource-Oriented architecture and not a pure technology decision. So the right question to ask when discussing true REST is whether its underpinning – ROA - is a good fit for your SOA implementation.
In order to assess the problem correctly, let’s first recall that the SOA architectural style is based on a functional decomposition of enterprise business architecture and introduces two high-level abstractions: enterprise business services and business processes.
Enterprise business services represent existing IT capabilities (aligned with the business functions of the enterprise).
Business processes, which orchestrate business services, define the overall functioning of the business.
REST, on another hand, is a set of architectural guidelines expressed as Resource-Oriented Architecture (ROA).
ROA is based upon the concept of resources; each resource is a directly-accessible distributed component that is handled through a standard, common interface.
So, the foundation of ROA is a resource-based decomposition.
In order to assess the applicability of true REST for the implementation of SOA, the real question that we need to answer is “What is the relationship between a service and a resource?”
Services vs. Resources
What is a service?
In the simplest case, a service can be defined as a self-contained, independently developed, deployed, managed, and maintained software implementation supporting specific business-relevant functionality for an enterprise as a whole and is "integratable" by design.
A “Service” is defined by a verb ( For example, “validate customer’s credit score”, which describes the business function it implements.)
A service is not a programming construct or a set of APIs, but rather an architectural (unit of design, implementation, and maintenance) and deployment artifact used for implementation of enterprise solutions.
The service functionality is defined by a service interface (specific for a given service), which can be supported by multiple implementations.
There are two basic ways of defining a service interface – RPC-style and messaging-style.
RPC-style implementations use service invocation semantics and are defined through a set of parameters in the service interface.
In the case of messaging style, a service interface is effectively fixed – it essentially performs “execute” - with an XML document as input and output (much like the GoF command pattern).
A service semantic, in this case, is
defined by the semantics of the input and output messages.
Historically, services are often defined as a collection of methods, these methods are independent from each other and such collection serves as a namespace, simplifying the management of the services.
What is a resource?
In the simplest case, a resource can be defined as a directly-accessible, independently-developed, deployed, managed and maintained software artifact supporting specific data.
A resource is defined by a noun for example, “doctor’s appointment” that describes the data provided by the resource.
A resource can also relate to other resources and provide a reference (link) to them.
In effect, a resource is similar to an object, but with a predefined (CRUDish) interface semantic.
* createResource - Create a new resource (and the corresponding unique identifier) - PUT
* getResourceRepresentation - Retrieve the representation of the resource - GET
* deleteResource - Delete the resource (optionally including linked resources) - DELETE (referred resource only), POST (can be used if the delete is including linked resources)
* modifyResource - Modify the resource – POST
* getMetaInformation - Obtain meta information about the resource - HEAD
A resource is defined by its URL and definition of inputs/outputs for every operation supported by a resource.
Unlike a service, where methods are completely independent and can be deployed as independent endpoints, methods on a resource follow OO semantics, which means that all of them (except createResource) have to exist on the underlying resource (same URL).
Basic differences between Resources and Services
Based on the above definitions of resources and services, it seems intuitively obvious that they are very different.
Let’s delve into these differences first, and then discuss how they can impact resulting architecture.
“Not only is REST not service oriented, service orientation is irrelevant for REST”
“If WS-* is the RPC of the Internet, REST is the DBMS of the internet
 Traditional SOA based integration visualizes different software artifacts being able to interact with each other through procedures or methods.
REST effectively allows each software artifact to behave as a set of tables, and these artifacts talk to each other using SELECT, INSERT, UPDATE and DELETE. ( or if you wish GET, PUT, POST, DELETE). And where exactly is the business logic? Is it in the stored procedures? Not Quite. It’s in the triggers.”
Here we will use a slightly different analogy, one based on J2EE.
We can think of services as stateless session beans and resources as entity beans.
Services – session beans – serve as controllers allowing execution of a required operation, regardless of the underlying resource.
For example, a debit account service might take the account ID and the amount and debit required account. A single service can debit any of the existing accounts.
Resources – aka entity beans – serve as a data access mechanism for a given instance of given data type.
For example, in order to debit a certain account, it is necessary to find a resource representing this account and then update it to debit the required amount.
An additional caveat here is that unlike an entity bean which can implement any required method, a REST resource has only a single modify resource method.
This means that the actual business operation, the debit, has to be encoded as part of the request.
What does this mean?
Based on the above, it is impossible to build an SOA system using true REST.
It is possible to build a system, but it won’t be SOA.
Both will start with the business-aligned decomposition, but because they are using very different decomposition approaches they will result in completely different architectural styles[Dhananjay Nene. Musings on REST] based on different set of components and connectors.
Just because they are trying to solve the same problem – business/IT alignment and are both based on business driven decomposition does not mean that the result will adhere to the same architectural style.
Another question is whether it is possible to build a complete system using true REST.
Based on the above, it is a question of whether it is possible to build a complete system using only a database or entity beans.
Certainly you could, but it would require adding procedural code in the form of stored procedures (overwriting the meaning of the methods) or triggers (doing post processing based on the data changes).
The same is typically true for a true REST implementation – you have to change the meaning of the modifyResource method (often using command pattern) to do more than data update.
As a result, a REST-based implementation is rarely true REST; it typically includes at least some elements of REST Web Services.
So what does it mean to be a REST Web Service?
If you want to continue discuss and complete this subject in a scientific manner, most welcome.
Please understand that we are not evaluating each other, we have
different opinions and want to reach to the best in a respectful
manner.
All the best
Ashraf Galal
Post by Ashraf Galal
The main difference between SOAP and REST is the fact that
while REST is implemented directly on top of the HTTP protocol,
SOAP introduces an abstraction layer (SOAP messaging), that
can be implemented on top of any transport.
Post by Ashraf Galal
Hmm, that's actually misleading. REST is just as abstract and
technology agnostic as SOAP. It was developed at the same time as HTTP
- and, indeed, HTTP is the largest and most famous implementation of
REST - but does not rely on it. Also, the SOAP envelope is almost identical to the HTML envelope (few
people seem to realize the header/body dichotomy similarities), and
I'd be hard pressed to find SOAP gliding over non-HTTP based
infra-structure. No, if I'd point out differences, I'd choose ; 1) resource-orientation, where big and small systems are spread out 2) REST is simpler and more generic than SOAP 3) REST is supported by more tools, unknowingly 4) REST is harder to understand because of its higher-order flexibility
Post by Ashraf Galal
I think the vendors do the right thing by supporting both REST and
SOAP, because REST is best fit into B2C interactions but not with
B2B interactions.
Post by Ashraf Galal
I think such broad categorizing is wrong. Since big business made WS
and tons of tools specifically to cater to B2B, most B2B are done
through big business and their tools. And this was done in the absence
of knowledge that REST could also do their job, not because it was
deemed unusable because, well, some businesses are indeed using it
B2B. However, people have a tendency to mean *their* B2B where they
already use WS and they can't phantom using anything else or their
industry or sector have invested billions into those tools and skills
and people.
Post by Ashraf Galal
Additionally, even if HTTP is the only transport used in implementation,
the SOAP envelope can become very handy for a clean separation of
business (SOAP Body) and infrastructure or out-of-bound (SOAP
Headers) data in SOAP messages.
Post by Ashraf Galal
You'll find this in HTML as well. In fact, a REST message have this,
as well, so I'm not sure you can claim this a WS victory.
Post by Ashraf Galal
According to them, REST simplicity stems from the fact that REST does
not require WSDL or any interface definition.
Post by Ashraf Galal
I think you need to talk to "them" more often. :) And the answer has
far more context than simply WDSL and interface definitions.
Post by Ashraf Galal
Defining an interface in a text document and “manually” coding of data
marshalling/unmarshalling based on a common interface definition
described in the interface document.
Post by Ashraf Galal
Give us an example.
Although such an approach is often promoted by REST advocates,
it rarely scales beyond 10 - 15 elements, which is not typical for coarse
grained REST services.
Post by Ashraf Galal
Currently this is a straw argument, so how doesn't it scale? What doesn't scale?
Besides, such an approach is very error prone and as a result, most
of the available REST frameworks have abandoned it in favor of the
next approach.
Post by Ashraf Galal
Again, what errors? Who's abandoned it?
Defining an interface on the XSD level and generation of the data
marshalling/unmarshalling based on the preferred framework (for
example, JAXB or Castor in the case of XML payload or Jackson,
in the case of JSON payload). Such an approach is, in effect,
a minimalistic version of WSDL and requires about the same amount
of effort as SOAP-based implementations.
Post by Ashraf Galal
What? This is all data-binding and schema variations, and has nothing
to do with interfaces as such or as a special thing. Indeed, explain
why GET / content-type/xml+xsd somehow is harder or easier than any
other means. It isn't, of course, as neither REST nor SOAP cares about
data-binding nor data schemas, so not even sure why this enters our
discussion here, unless you're talking about defining APIs inside data
objects, in which case we've left REST /SOAP several abstractions ago
... :)
Post by Ashraf Galal
Another common complaint about SOAP is perceived complexity of WS*
standards. Although there is no single spec that lays out the key WS*
standards and their interrelationships, there is a standard for a majority of
service interaction use cases.
Post by Ashraf Galal
Hmm. A lot of these are API specifications, of which REST defines
*none*, so you can't make a comparison here.
Post by Ashraf Galal
Granted, the choosing of an appropriate WS*standard and its usage might
require some extra understanding/implementation time, [...]
Post by Ashraf Galal
“Arguing simplicity versus standards is ridiculous in the war between
REST and SOA because simplicity without standards is just as
detrimental to the costs and manageability of an application “
Post by Ashraf Galal
This doesn't even make sense. REST is in no way the opposite of SOA.
Is it supposed to say SOAP? Or is it supposed to say WS-*? And if so,
the argument becomes valid.
Post by Ashraf Galal
So, with the exception of the most simplistic examples like
“temperature converters”, REST is not any more simple than SOAP.
Post by Ashraf Galal
Wow. I didn't know all my enterprise BI, integration and development
were that simple! I shall promptly tell the people in charge to lower
my salary ... Ok, maybe I'm not that good with sarchasm[1], but these statements are
in dire need of correction; they are simply wrong and mocking in tone,
and to me demonstrate a level of knowledge about the subject matter
far below par. Regards, Alex [1] Sarchasm; the chasm between the person of brilliant wit and the
others who don't get it. -- Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
Alexander Johannesen
2013-02-04 00:04:16 UTC
Permalink
Post by Michael Poulin
Based on the above, it is impossible to build an SOA system using true REST.
It is possible to build a system, but it won’t be SOA.
I'm coming to the conclusion that you're both clearly mad. :)

Now, let's make it perfectly clear; there are systems out there that
are both perfectly REST and SOA (why, I'm using one as we speak), and
banging on about whether something fits your narrow specification of
something that admittedly is more open is bordering on crazy. And for
Pete's sake, you can do SOA in almost any technology you want to as it
is *NOT* a technology *NOR* tied to any technology *NOR* exclusive to
geeks and technologists. REST does not dictate anything that doesn't
fit into the container called "SOA", no matter whether you think it's
true REST or not.

If you still believe these things, please back it up with examples,
otherwise you're just spreading hate and ignorance, and I think you're
much smarter than that ...

*ahem* :)

Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steve Jones
2013-02-04 00:29:44 UTC
Permalink
Steve Jones
2013-02-02 23:58:21 UTC
Permalink
Post by Anne Manes
**
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
Anne such patronising is beneath you. I understand REST, I've put
enterprise solutions into production using REST. My issue with it is that
Enterprise IT developed massively from 2000-2005 on the back of two things:
Java and WSDL (and I mean WSDL not SOAP). Since then progress has been
minimal and in many ways retrograde and while there are many cheerleaders
for REST I can't help but notice they focus on technology performance and
ignore the people aspects.

I work in the world of high value transactions which carry risk if they
fuck up and where multiple parties have to be engaged and agree on the
common approach. Not where the objective is to get 'lots of external
developers to use our API'.
Post by Anne Manes
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
What is the service you can't devise using WS-*? Or Jini? Or CORBA?
Services are about nouns as well. Services are the high level nouns
'Finance', 'Sales', 'Supply Chain', 'Lead Management'. This represents the
way a business organises and works, the low-level nouns are not constants
in an enterprise. The 'Customer' in Sales might not be the 'Customer' in
Finance if the Invoice is sent to their company while sales is to the
individual. This is why for me REST isn't a step forward but instead is a
step back towards OO but this time distributed OO and therefore a step away
from being able to create IT estates that represent the business. I think
that information is massively important and that the exchange of
information is critical but I don't think that companies are organised
around the little-nouns which are exchanged.
Post by Anne Manes
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
Dynamic APIs in business are as much use as Dynamic Contracts. If you rely
on something to be delivered and in order to achieve that SLA there are a
set of criteria that you must meet and the success of your business relies
upon it then having that change underneath you is not a good idea. I don't
care if we can argue they are technically better, my point is that whether
the API is dynamic or not the business will require formalisation around
release and communication to partners. I don't include developer centric
APIs from Facebook or Netflix in this as being blunt they don't give a toss
if it breaks the clients.
Post by Anne Manes
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
Anne, I'm really surprised at this comment.

SOAP on Java and .NET - Check
Scripting = Python, Ruby... I really can't be arsed to check more
Mobile Apps = Hell I presented on this in 2002 with working demos so....
err check
Excel = Anne is this a joke? People have been doing this for years (
http://www.webcontinuum.net/ws_4.aspx)
http://msdn.microsoft.com/en-us/library/ms572330.aspx. Hell I've got
horror stories of people using Excel to access SAP (which would equally
apply if they'd used REST).

The question isn't simply about consumers its about how long it takes a
consumer to understand a new API whether REST or SOAP and if they have to
integrate multiple different suppliers (SAP, CICS, Oracle, etc) how
different are each of these things. Its also about the cost of creating
the interface over using what the vendor supplies.
Post by Anne Manes
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
I'd really love to see them, genuinely. I'd say in the last 6 years, except
for where I've decided to use REST or on consumer internet focused
projects, I've come across it 4 or 5 times and in all but one of those it
was used in bespoke coding environments with teams who supported the
software in the change control environment and interacted with similar
teams. In the remaining one, and I quote, 'some shiny bastard decided he
wanted to be different and now we've got to clean up the shit now he's
left'. I'd really like to speak to people who've done REST in the
Enterprise to integrate with SAP, Oracle, CICS etc because I've not seen a
single one of those.

Anne, I respect a lot of what you write and I really mean I'd be open if
you can put me in touch with people who can show me I'm wrong in production
on Enterprise REST, but in the last 12 months I didn't once get asked about
REST while WSDL was the 'standard' at every single firm, EDI is used for
more new projects in the Enterprise than REST than what me, or my
reasonably extensive network, has seen.

Enterprise Integration is in a worse place now than it was in 2006 because
people are cheerleading a technology when the issue in integration is
people, worse a technology whose basic premise is wrong for the
enterprise...

Small-nouns don't run business, big Nouns do.

Steve
Post by Anne Manes
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
Post by Michael Poulin
Post by David Tildesley
Post by Skills
http://skillsmatter.com/podcast/design-architecture/restful-objects
Mark
Anne Manes
2013-02-03 19:10:22 UTC
Permalink
I'm sorry, Steve. I disagree with you, but I should not be patronizing.

Gartner has confidentiality agreements with our clients; therefore, I am
not at liberty to cite examples of companies that have chucked WS-* and
adopted REST to implement A2A and B2B integration. But I assure that I know
of many companies that have done so. Including companies that "work in the
world of high value transactions which carry risk if they fuck up and where
multiple parties have to be engaged and agree on the common approach. "

You're right. You can devise any service using WS-*, Jini, CORBA, or
whatever. I never said that you couldn't. But plenty of people claim that
you can't implement a sophisticated service using REST. Most often that
misconception comes from the perception that GET, PUT, POST, DELETE is as
limited as CRUD. I just want to assert in no uncertain terms that you can
use REST for even the most complex and mission-critical scenarios.

The issue is less about what you can do with the different technologies and
more about the architectural implications of the technologies. I understand
that Java and WSDL work for you. You can deliver solutions using
established patterns, and you are confident that the solutions will deliver
the value you seek. Nonetheless, Java and WSDL impose flexibility and
usability constraints. If you can live with those constraints, then keep
using them. But you don't have to live with those constraints.

REST is new for most IT teams. I'm not surprised to hear that a company has
to clean up the mess left behind by someone that really didn't understand
what he was doing. I suspect that's happened in a lot of companies. That
kind of thing happens all the time when adopting new design patterns and
paradigms. But that doesn't mean that the design patterns and paradigms are
flawed. It just means that people don't know how to use them properly. In a
lot of organizations, the risk associated with using unfamiliar patterns is
justification to delay adoption. But it still doesn't make the premise
"wrong for the enterprise".

One really limiting challenge with using REST is the dearth of good
frameworks that promote the architectural style. Frameworks like JAX-RS
promote RPC-style "swamp of POX" rather than Level 3 REST. And RPC/POX
generates the same type of constraints as SOAP without the benefits of the
SOAP envelope. It's worse than SOAP. And that's why I like RESTful Objects.
We're finally developing tooling that will encourage developers to adopt
and embrace the architectural style.

But let's get back to the crux of your argument. You say that REST has
somehow set us back a decade. Tell me why enterprise integration is worse
now than in 2006. Java and WSDL haven't gone away. And the frameworks for
using Java and WSDL have improved quite a bit since 2006. So why are
things worse?

I believe the situation is worse because the integration requirements are
more complex. And that increased complexity requires different types of
solutions. I also think that a resource-oriented architecture helps tame
that complexity much better than an RPC-oriented architecture can.

But I'm quite happy to agree to disagree.

Anne
Post by Steve Jones
**
Post by Anne Manes
**
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
Anne such patronising is beneath you. I understand REST, I've put
enterprise solutions into production using REST. My issue with it is that
Java and WSDL (and I mean WSDL not SOAP). Since then progress has been
minimal and in many ways retrograde and while there are many cheerleaders
for REST I can't help but notice they focus on technology performance and
ignore the people aspects.
I work in the world of high value transactions which carry risk if they
fuck up and where multiple parties have to be engaged and agree on the
common approach. Not where the objective is to get 'lots of external
developers to use our API'.
Post by Anne Manes
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
What is the service you can't devise using WS-*? Or Jini? Or CORBA?
Services are about nouns as well. Services are the high level nouns
'Finance', 'Sales', 'Supply Chain', 'Lead Management'. This represents the
way a business organises and works, the low-level nouns are not constants
in an enterprise. The 'Customer' in Sales might not be the 'Customer' in
Finance if the Invoice is sent to their company while sales is to the
individual. This is why for me REST isn't a step forward but instead is a
step back towards OO but this time distributed OO and therefore a step away
from being able to create IT estates that represent the business. I think
that information is massively important and that the exchange of
information is critical but I don't think that companies are organised
around the little-nouns which are exchanged.
Post by Anne Manes
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
Dynamic APIs in business are as much use as Dynamic Contracts. If you
rely on something to be delivered and in order to achieve that SLA there
are a set of criteria that you must meet and the success of your business
relies upon it then having that change underneath you is not a good idea.
I don't care if we can argue they are technically better, my point is that
whether the API is dynamic or not the business will require formalisation
around release and communication to partners. I don't include developer
centric APIs from Facebook or Netflix in this as being blunt they don't
give a toss if it breaks the clients.
Post by Anne Manes
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
Anne, I'm really surprised at this comment.
SOAP on Java and .NET - Check
Scripting = Python, Ruby... I really can't be arsed to check more
Mobile Apps = Hell I presented on this in 2002 with working demos so....
err check
Excel = Anne is this a joke? People have been doing this for years (
http://www.webcontinuum.net/ws_4.aspx)
http://msdn.microsoft.com/en-us/library/ms572330.aspx. Hell I've got
horror stories of people using Excel to access SAP (which would equally
apply if they'd used REST).
The question isn't simply about consumers its about how long it takes a
consumer to understand a new API whether REST or SOAP and if they have to
integrate multiple different suppliers (SAP, CICS, Oracle, etc) how
different are each of these things. Its also about the cost of creating
the interface over using what the vendor supplies.
Post by Anne Manes
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
I'd really love to see them, genuinely. I'd say in the last 6 years,
except for where I've decided to use REST or on consumer internet focused
projects, I've come across it 4 or 5 times and in all but one of those it
was used in bespoke coding environments with teams who supported the
software in the change control environment and interacted with similar
teams. In the remaining one, and I quote, 'some shiny bastard decided he
wanted to be different and now we've got to clean up the shit now he's
left'. I'd really like to speak to people who've done REST in the
Enterprise to integrate with SAP, Oracle, CICS etc because I've not seen a
single one of those.
Anne, I respect a lot of what you write and I really mean I'd be open if
you can put me in touch with people who can show me I'm wrong in production
on Enterprise REST, but in the last 12 months I didn't once get asked about
REST while WSDL was the 'standard' at every single firm, EDI is used for
more new projects in the Enterprise than REST than what me, or my
reasonably extensive network, has seen.
Enterprise Integration is in a worse place now than it was in 2006 because
people are cheerleading a technology when the issue in integration is
people, worse a technology whose basic premise is wrong for the
enterprise...
Small-nouns don't run business, big Nouns do.
Steve
Post by Anne Manes
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects -
A Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an XML
doc I could give to my consumers from which they could generate the client
side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Post by Michael Poulin
Post by David Tildesley
Post by Skills
Mark
Steve Jones
2013-02-03 23:49:50 UTC
Permalink
Post by Anne Manes
**
I'm sorry, Steve. I disagree with you, but I should not be patronizing.
Gartner has confidentiality agreements with our clients; therefore, I am
not at liberty to cite examples of companies that have chucked WS-* and
adopted REST to implement A2A and B2B integration. But I assure that I know
of many companies that have done so. Including companies that "work in
the world of high value transactions which carry risk if they fuck up and
where multiple parties have to be engaged and agree on the common approach.
"
I'm still confused as to why I've not come across one of them, nor indeed
know of someone who has. It would be great if you could point to some
enterprise case studies that have been done.
Post by Anne Manes
You're right. You can devise any service using WS-*, Jini, CORBA, or
whatever. I never said that you couldn't. But plenty of people claim that
you can't implement a sophisticated service using REST. Most often that
misconception comes from the perception that GET, PUT, POST, DELETE is as
limited as CRUD. I just want to assert in no uncertain terms that you can
use REST for even the most complex and mission-critical scenarios.
I'm not claiming that, I'm fine with the concept that all of these
technologies are basically doing the same thing in slightly different ways.
You can design very sophisticated things using REST, Jini, CORBA or
carrier pigeons as the transport & integration mechanism.
Post by Anne Manes
The issue is less about what you can do with the different technologies
and more about the architectural implications of the technologies. I
understand that Java and WSDL work for you. You can deliver solutions using
established patterns, and you are confident that the solutions will deliver
the value you seek. Nonetheless, Java and WSDL impose flexibility and
usability constraints. If you can live with those constraints, then keep
using them. But you don't have to live with those constraints.
My constraints aren't technical they are people. For me the biggest myth
in this space is that technical flexibility and performance is the major
challenge.
Post by Anne Manes
REST is new for most IT teams. I'm not surprised to hear that a company
has to clean up the mess left behind by someone that really didn't
understand what he was doing. I suspect that's happened in a lot of
companies. That kind of thing happens all the time when adopting new design
patterns and paradigms. But that doesn't mean that the design patterns and
paradigms are flawed. It just means that people don't know how to use them
properly. In a lot of organizations, the risk associated with using
unfamiliar patterns is justification to delay adoption. But it still
doesn't make the premise "wrong for the enterprise".
But this is where I begin to struggle. Its been 7+ years since the ra-ra
started around REST and the level of maturity in design, architecture and
tooling can at best be described as toddler.
Post by Anne Manes
One really limiting challenge with using REST is the dearth of good
frameworks that promote the architectural style. Frameworks like JAX-RS
promote RPC-style "swamp of POX" rather than Level 3 REST. And RPC/POX
generates the same type of constraints as SOAP without the benefits of the
SOAP envelope. It's worse than SOAP. And that's why I like RESTful Objects.
We're finally developing tooling that will encourage developers to adopt
and embrace the architectural style.
7+ years and we are getting to toddler.
Post by Anne Manes
But let's get back to the crux of your argument. You say that REST has
somehow set us back a decade. Tell me why enterprise integration is worse
now than in 2006. Java and WSDL haven't gone away. And the frameworks for
using Java and WSDL have improved quite a bit since 2006. So why are
things worse?
Three reasons

1) The ra-ra hype has meant that which was mandatory in tool stacks in 2006
(e.g. WS-I 1.1 compliance) is now 'optional'
2) The ra-ra hype and lack of focus means that vendors have been pushing
proprietary solutions over standards based stacks and thanks to the
ra-ra blurring the game they've got away with stuff in 2012/13 that would
have been laughable in 2006
3) The level of ignorance around REST is startling, I'm pretty sure I
understand REST, I just don't buy the kool-aid, but 90% plus of the people
claiming to 'do REST' are like the people who 'do agile' just to avoid
documentation and thinking.

Genuinely it depresses me, I'm seeing technologies that were dead in 2006
rising back up as vendors see that they don't need to focus on open
standards anymore and can lock companies into proprietary solutions with
lip-service to open standards. REST aids in this (IMO) as every bugger has
their own 'unique' take on REST so if you have their product at both end it
works but if you don't its down to reading the developer APIs and
hand-coding.

REST is partly responsible but the massive failure of the Java leadership
is more responsible IMO.
Post by Anne Manes
I believe the situation is worse because the integration requirements are
more complex. And that increased complexity requires different types of
solutions. I also think that a resource-oriented architecture helps tame
that complexity much better than an RPC-oriented architecture can.
This is the bit I certainly disagree with. I think that
resource-orientation really helps when looking at information navigation
within a domain and if we could get some standards around that approach it
would really help with the federated data challenge, like those expensive
data virtualisation products but without the expensive products just with
data transformation and MDM.

My challenge on the concept that resource orientation manages complexity
better in a value network world is that value networks aren't resource
oriented they are value oriented and domain oriented. Companies aren't
resource oriented they are organised around functional domains and the
'resources' pass between these domains and mean different things in
different parts of the business and have different governance models around
them.

For me REST is a developer centric packet shifting abstraction. The
complexity in integration is almost never in the technology side its in the
people and communication side, businesses are not resource oriented. I've
yet to read a single business paper that talks about the need to organise
the business in terms of the low-level resources, for me this is as wrong
as the original BPR horizontal process idea, it misses the whole human
dynamic.
Post by Anne Manes
But I'm quite happy to agree to disagree.
Always, and I really mean it when I say I'd love to see something better.
I don't give a crap about integration, its something I have to do and if I
can get a better way to get disparate teams and companies working together
so they can be held to account on their deliver then I'm in.

Steve
Post by Anne Manes
Anne
Post by Steve Jones
**
Post by Anne Manes
**
Hi guys. It's been a while since I dropped into this conversation. I see
we're still having the SOAP vs REST debate. Alex - I applaud you for
continuing to educate Steve and Michael. I'm not sure it's a worthy cause.
I doubt they will ever accept enlightenment. But I'll give it a try anyway.
Anne such patronising is beneath you. I understand REST, I've put
enterprise solutions into production using REST. My issue with it is that
Java and WSDL (and I mean WSDL not SOAP). Since then progress has been
minimal and in many ways retrograde and while there are many cheerleaders
for REST I can't help but notice they focus on technology performance and
ignore the people aspects.
I work in the world of high value transactions which carry risk if they
fuck up and where multiple parties have to be engaged and agree on the
common approach. Not where the objective is to get 'lots of external
developers to use our API'.
Post by Anne Manes
- there's no service for which I cannot devise a RESTful API based on
resources and the uniform set of methods (GET, PUT, POST, and DELETE). The
first key to understanding REST is that the API is defined by the resource
model (the nouns) rather than the methods (the verbs). This is most
definitely a matter of design, not just a matter of coding. The resource
model determines how useful and useable the API is. For an example of a
great RESTful API, check out the Netflix API -
http://developer.netflix.com/
What is the service you can't devise using WS-*? Or Jini? Or CORBA?
Services are about nouns as well. Services are the high level nouns
'Finance', 'Sales', 'Supply Chain', 'Lead Management'. This represents the
way a business organises and works, the low-level nouns are not constants
in an enterprise. The 'Customer' in Sales might not be the 'Customer' in
Finance if the Invoice is sent to their company while sales is to the
individual. This is why for me REST isn't a step forward but instead is a
step back towards OO but this time distributed OO and therefore a step away
from being able to create IT estates that represent the business. I think
that information is massively important and that the exchange of
information is critical but I don't think that companies are organised
around the little-nouns which are exchanged.
Post by Anne Manes
-Because the resource model is dynamically extensible, the API is also
dynamically extensible. I'm sure you can appreciate the advantages afforded
by a dynamically extensible API.
Dynamic APIs in business are as much use as Dynamic Contracts. If you
rely on something to be delivered and in order to achieve that SLA there
are a set of criteria that you must meet and the success of your business
relies upon it then having that change underneath you is not a good idea.
I don't care if we can argue they are technically better, my point is that
whether the API is dynamic or not the business will require formalisation
around release and communication to partners. I don't include developer
centric APIs from Facebook or Netflix in this as being blunt they don't
give a toss if it breaks the clients.
Post by Anne Manes
- a RESTful API can be accessed by a much broader set of potential
consumers than a SOAP API, including Java and .Net apps, scripting apps,
mobile apps, web browsers, excel spreadsheets, mash up tools, etc.
Anne, I'm really surprised at this comment.
SOAP on Java and .NET - Check
Scripting = Python, Ruby... I really can't be arsed to check more
Mobile Apps = Hell I presented on this in 2002 with working demos so....
err check
Excel = Anne is this a joke? People have been doing this for years (
http://www.webcontinuum.net/ws_4.aspx)
http://msdn.microsoft.com/en-us/library/ms572330.aspx. Hell I've got
horror stories of people using Excel to access SAP (which would equally
apply if they'd used REST).
The question isn't simply about consumers its about how long it takes a
consumer to understand a new API whether REST or SOAP and if they have to
integrate multiple different suppliers (SAP, CICS, Oracle, etc) how
different are each of these things. Its also about the cost of creating
the interface over using what the vendor supplies.
Post by Anne Manes
- REST is absolutely gaining ground as the preferred way to implement
services and integration within corporate IT. I have plenty of clients
that still don't understand that RESTful HTTP is more scalable, more
secure, and more flexible than SOAP, but that number is dwindling. REST is
definitely gaining traction.
I'd really love to see them, genuinely. I'd say in the last 6 years,
except for where I've decided to use REST or on consumer internet focused
projects, I've come across it 4 or 5 times and in all but one of those it
was used in bespoke coding environments with teams who supported the
software in the change control environment and interacted with similar
teams. In the remaining one, and I quote, 'some shiny bastard decided he
wanted to be different and now we've got to clean up the shit now he's
left'. I'd really like to speak to people who've done REST in the
Enterprise to integrate with SAP, Oracle, CICS etc because I've not seen a
single one of those.
Anne, I respect a lot of what you write and I really mean I'd be open if
you can put me in touch with people who can show me I'm wrong in production
on Enterprise REST, but in the last 12 months I didn't once get asked about
REST while WSDL was the 'standard' at every single firm, EDI is used for
more new projects in the Enterprise than REST than what me, or my
reasonably extensive network, has seen.
Enterprise Integration is in a worse place now than it was in 2006
because people are cheerleading a technology when the issue in integration
is people, worse a technology whose basic premise is wrong for the
enterprise...
Small-nouns don't run business, big Nouns do.
Steve
Post by Anne Manes
Anne
Post by David Tildesley
**
It's a little off topic for SOA (choice of soap, restful, json, xml -
that's detail you probably aren't too fussed about), but if you read Dan's
book "DDD using Naked Objects" then you will completely understand the
motivation for RestfulObjects even though RestfulObjects post dates the
book which came out a few years ago (before Apache ISIS 1.0 with is next
version of Naked Objects 4.0)).
Apart from reading the book, you can simply read the ISIS web site and
you will get the picture.
Then the full irony will be appreciated - application development as is
it would have been if it weren't broken by a mixture of EJB, Corba, COM,
expensive and overblown vendor frameworks and dumbed down developers,
project managers and IT managers.
David.
Post by Michael Poulin
Also, what required us to progress in this task for those 13 years?
- Michael
________________________________
From: Steve Jones
To: service-orientated-architecture
Sent: Thursday, January 31, 2013 1:07 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects -
A Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Â
I remember doing that with Web Services in 2000... Â and I got an
XML doc I could give to my consumers from which they could generate the
client side.
Post by Michael Poulin
How we've progressed in 13 years.
Steve
Post by David Tildesley
Â
I like it. If you want to see it in action, maven the ISIS example
archetype from apache ISIS project which generates a Restful Objects
(application) service straight from the application's domain objects . Then
just GET around the resfulobjects interface using a browser to get a feel
for it (would pay you to first use the wicket viewer to understand the
domain of the app and run the fixture as user "sven" to populate some
"ToDos)
Post by Michael Poulin
Post by David Tildesley
David.
Post by Skills
REST architectures are becoming increasingly more common, both on
the internet and within the enterprise. Behind most of these REST APIs is a
domain model (some anaemic, some less so); the wiring up of that REST API
to the model involves lots of boilerplate and lots of testing.
http://skillsmatter.com/podcast/design-architecture/restful-objects
Post by Michael Poulin
Post by David Tildesley
Post by Skills
Mark
Keith P Hassen
2013-02-02 17:44:47 UTC
Permalink
This thread is interesting. A couple of remarks:

- Using verbs in URL path segments does not break any RESTful
constraint. The guidance on this is to encourage use of verbs defined over
the common interface (HTTP in this case).
- A resource can be modeled as a service that performs work such as
/.../convert. The "convert" resource doesn't break any real constraints
but then again it is only a single resource and part of the goal of REST is
to *re*use *re*sources in a distributed way...


K
Michael Poulin
2013-02-02 19:25:25 UTC
Permalink
In my opinion, "A resource can be modeled as a service that performs work such as
/.../convert.  The "convert" resource doesn't break any real constraints" but contradicts the 'spirit' and 'letter' of meaning of resource, i.e. noun. I see this not as a bonus but as a flaw in the REST specification.

- Michael
________________________________
Sent: Saturday, February 2, 2013 5:44 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
* Using verbs in URL path segments does not break any RESTful constraint.  The guidance on this is to encourage use of verbs defined over the common interface (HTTP in this case).
* A resource can be modeled as a service that performs work such as /.../convert.  The "convert" resource doesn't break any real constraints but then again it is only a single resource and part of the goal of REST is to *re*use *re*sources in a distributed way...
K
Keith P Hassen
2013-02-02 20:44:01 UTC
Permalink
I suppose I don't see any contradiction regarding the "spirit" and "letter"
of REST. How is a "resource" necessarily a "noun"? Where does Fielding
require this? From Fielding himself:

"You won't find a constraint about "nouns" anywhere in my dissertation. It
talks about resources, as in *re*sources, because that is what we want from
a distributed hypermedia system (the ability to reuse those information
sources through the provision of links). Services that are merely
end-points are allowed within that model, but they aren't very
interesting because
they only amount to one resource. The really interesting services provide
many resources."

To me, you don't have to climb the entirety of Richardson's maturity model
to exploit lessons from REST. Ultimately your design should account for
trade-offs against any architectural style, REST just provides us with
another voice against which our strategic decisions are based.


K
Post by Michael Poulin
**
In my opinion, "A resource can be modeled as a service that performs work
such as /.../convert. The "convert" resource doesn't break any real
constraints" but contradicts the 'spirit' and 'letter' of meaning of
resource, i.e. noun. I see this not as a bonus but as a flaw in the REST
specification.
- Michael
------------------------------
*Sent:* Saturday, February 2, 2013 5:44 PM
*Subject:* Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
- Using verbs in URL path segments does not break any RESTful
constraint. The guidance on this is to encourage use of verbs defined over
the common interface (HTTP in this case).
- A resource can be modeled as a service that performs work such as
/.../convert. The "convert" resource doesn't break any real constraints
but then again it is only a single resource and part of the goal of REST is
to *re*use *re*sources in a distributed way...
K
Michael Poulin
2013-02-02 23:34:42 UTC
Permalink
Keith,
there are two things in Fieldin's quote - write and wrong (from the perspective of 2013).

The right thing is: "...we want from a distributed hypermedia system (the ability to reuse those information sources through the provision of links)". He explicitly talks about information sources and information is noun, is data+metadata, but not an action, behaviour or function. This closes the debate if REST can do with functions anything more than HTTP operations. This is why it is simple - limited operations and information/data only. Indeed, what else you can (or want to) do via Internet?!

The wrong thing is: "Services that are merely end-points". Modern understanding of Services is that a service is a combination of manual and automated actions operating on request and utilising promissed business capabilities that may or may not relate to resources. However, from the connectivity perspective (such as uses by REST), a Service is nothing more than an end-point, but connectivity or end-point is #16 among the concerns of Services. Moreover, how many resources a Service uses is nobody's business, especially it is not a business of the Service's consumers. Good Service will never expose used resources to the consumers because the Service does not own and control those resources (as I mentioned in the responses before).

So, let me repeat what I said to Anne - REST has its strong and weak sides and good for what it was designed - for Internet-specific communication and for dealing for information only (to an extreme, REST is similar to CRUD on steroids for Web channel) (I assume I will be killed soon for this though there is nothing wrong with being on steroids if it helps in solving some tasks, isn't it?). The world outside of REST has its own strengths is witnesses; so, I will not use REST when I need to communicate commands or actions. But it is me only...

- Michael
________________________________
Sent: Saturday, February 2, 2013 8:44 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
"You won't find a constraint about "nouns" anywhere in my dissertation. It talks about resources, as in *re*sources, because that is what we want from a distributed hypermedia system (the ability to reuse those information sources through the provision of links). Services that are merely end-points are allowed within that model, but they aren't very interesting because they only amount to one resource. The really interesting services provide many resources."
To me, you don't have to climb the entirety of Richardson's maturity model to exploit lessons from REST.  Ultimately your design should account for trade-offs against any architectural style, REST just provides us with another voice against which our strategic decisions are based.
K
Post by Michael Poulin
 
In my opinion, "A resource can be modeled as a service that performs work such as
/.../convert.  The "convert" resource doesn't break any real constraints" but contradicts the 'spirit' and 'letter' of meaning of resource, i.e. noun. I see this not as a bonus but as a flaw in the REST specification.
Post by Michael Poulin
- Michael
________________________________
Sent: Saturday, February 2, 2013 5:44 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
* Using verbs in URL path segments does not break any RESTful constraint.  The guidance on this is to encourage use of verbs defined over the common interface (HTTP in this case).
* A resource can be modeled as a service that performs work such as /.../convert.  The "convert" resource doesn't break any real constraints but then again it is only a single resource and part of the goal of REST is to *re*use *re*sources in a distributed way...
K
Alexander Johannesen
2013-02-02 20:46:03 UTC
Permalink
Post by Michael Poulin
In my opinion, "A resource can be modeled as a service that performs
work such as /.../convert. The "convert" resource doesn't break any real
constraints" but contradicts the 'spirit' and 'letter' of meaning of resource,
i.e. noun. I see this not as a bonus but as a flaw in the REST specification.
Not sure I agree with either of you ;

GET http://server/convert
DELETE http://server/convert

What are these supposed to do? This is the litmus test of REST;
GET/POST/DELETE/PUT/OPTIONS your resource, and if it doesn't seem to
make much sense, you're doing it wrong.


Regards,

Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Keith P Hassen
2013-02-02 21:41:51 UTC
Permalink
The example was contrived to illustrate a larger point that verbs in
resource names is permitted by REST. To be honest that came from a thread
on rest-discuss:
http://tech.groups.yahoo.com/group/rest-discuss/message/5838

To me, it seems like REST is an architectural tool that can be applied in
varying degrees to a problem space. It doesn't always make sense and
that's fine.

K




On Sat, Feb 2, 2013 at 3:46 PM, Alexander Johannesen <
Post by Michael Poulin
**
Post by Michael Poulin
In my opinion, "A resource can be modeled as a service that performs
work such as /.../convert. The "convert" resource doesn't break any real
constraints" but contradicts the 'spirit' and 'letter' of meaning of
resource,
Post by Michael Poulin
i.e. noun. I see this not as a bonus but as a flaw in the REST
specification.
Not sure I agree with either of you ;
GET http://server/convert
DELETE http://server/convert
What are these supposed to do? This is the litmus test of REST;
GET/POST/DELETE/PUT/OPTIONS your resource, and if it doesn't seem to
make much sense, you're doing it wrong.
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
Michael Poulin
2013-02-03 00:02:55 UTC
Permalink
As Alex said before, if a tool, especially architectural tool (M.P.) does not make sense, it is wrong. That is, either a tool is used wrongly or a tool is bad. I can add only that if an architectural tool allows to use it wrongly so easy as REST, I would think twice about how many Governance rules I have to build around it before using it.
http://myhost.com/convert
http://myhost.com/convert?format=pdf
Places are nouns, too. All you are doing is giving the URI of a service
that performs stateless conversions. The GET interface simply tells you
how to use the service (e.g., HTML form), there is no other resource
involved, and there is no sustained benefit across multiple invocations
(no reusable resources other than the service itself).

I hate to quote myself, but in sec 5.2.1.2:

"REST components perform actions on a resource by using a
representation to capture the current or intended state of that
resource and transferring that representation between components."


There is a view on Service bottom up - there is no way to point/address a Service other way than through its interface. If this interface does not support operation/action "convert", aforementioned URI is useless. Also, a Service is not 'convert', a Service is 'application'; so, what GET <application> means? Does the requester wanted an application back? Absurd.

"The GET interface simply tells you how to use the service (e.g., HTML form)" is another absurd or oversimplification. Only Service can tell consumer how to use itself and there is no way for an 'HTML form' to be a service. As I said already, a Service is not a resource and Service never represents used resource (plus, a data returned by a Service does not represent this Service); otherwise the Service will be coupled with the resource, which is unacceptable based on Principles of Service Orientation. However, for people who thinks that Service=Interface, many absurd things are OK.

- Michael





- Michael
________________________________
Sent: Saturday, February 2, 2013 9:41 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
The example was contrived to illustrate a larger point that verbs in resource names is permitted by REST.  To be honest that came from a thread on rest-discuss: http://tech.groups.yahoo.com/group/rest-discuss/message/5838
To me, it seems like REST is an architectural tool that can be applied in varying degrees to a problem space.  It doesn't always make sense and that's fine.
K
Post by Alexander Johannesen
 
Post by Michael Poulin
In my opinion, "A resource can be modeled as a service that performs
work such as /.../convert. The "convert" resource doesn't break any real
constraints" but contradicts the 'spirit' and 'letter' of meaning of resource,
i.e. noun. I see this not as a bonus but as a flaw in the REST specification.
Not sure I agree with either of you ;
Post by Alexander Johannesen
GET http://server/convert
DELETE http://server/convert
What are these supposed to do? This is the litmus test of REST;
GET/POST/DELETE/PUT/OPTIONS your resource, and if it doesn't seem to
make much sense, you're doing it wrong.
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
Michael Poulin
2013-02-02 23:38:21 UTC
Permalink
Alex, either you did not understand me or you do not understand you now. This what I said - "GET http://server/convert" does not make sense though it does not violate REST rules because REST does not have such rules and relies on "common sense", doesn't it?
- Michael
________________________________
Sent: Saturday, February 2, 2013 8:46 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A Hypermedia API For Domain Object Models by Dan Haywood
 
Post by Michael Poulin
In my opinion, "A resource can be modeled as a service that performs
work such as /.../convert. The "convert" resource doesn't break any real
constraints" but contradicts the 'spirit' and 'letter' of meaning of resource,
i.e. noun. I see this not as a bonus but as a flaw in the REST specification.
Not sure I agree with either of you ;
GET http://server/convert
DELETE http://server/convert
What are these supposed to do? This is the litmus test of REST;
GET/POST/DELETE/PUT/OPTIONS your resource, and if it doesn't seem to
make much sense, you're doing it wrong.
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---
Alexander Johannesen
2013-02-03 23:26:17 UTC
Permalink
Hiya,
Post by Michael Poulin
Alex, either you did not understand me or you do not understand you now.
Sorry, i should have been more specific, and it wasn't what you said about
this I disagreed with, it was your next statement about the lack of nouns
in the REST standard, that this somehow is a flaw ... I just didn't quite
finish my email before I got there. :)

Anyway, I don't agree at all, as, in theory, anything could be a resource,
including verbs and other ilk (you never know when the right moment comes;
I have a REST web service that delivers JavaScript applications, so doing
REST on an application resource is actually meaningful).



Regards,


Alex
Post by Michael Poulin
________________________________
Sent: Saturday, February 2, 2013 8:46 PM
Subject: Re: [service-orientated-architecture] Re: Restful Objects - A
Hypermedia API For Domain Object Models by Dan Haywood
Post by Michael Poulin
Post by Michael Poulin
In my opinion, "A resource can be modeled as a service that performs
work such as /.../convert. The "convert" resource doesn't break any
real
Post by Michael Poulin
Post by Michael Poulin
constraints" but contradicts the 'spirit' and 'letter' of meaning of resource,
i.e. noun. I see this not as a bonus but as a flaw in the REST specification.
Not sure I agree with either of you ;
GET http://server/convert
DELETE http://server/convert
What are these supposed to do? This is the litmus test of REST;
GET/POST/DELETE/PUT/OPTIONS your resource, and if it doesn't seem to
make much sense, you're doing it wrong.
Regards,
Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen---
Alexander Johannesen
2013-02-02 20:42:58 UTC
Permalink
Post by Keith P Hassen
Using verbs in URL path segments does not break any RESTful
constraint.
It breaks the "stupid" rule, though ;

GET http://server/all_our_data/delete

And yes, this breaks the REST rule of making GET harmless.
Post by Keith P Hassen
A resource can be modeled as a service that performs work such
as /.../convert. The "convert" resource doesn't break any real
constraints but then again it is only a single resource and part of
the goal of REST is to *re*use *re*sources in a distributed way...
Aaahhh, yes, modeling; the bane of the human existence, my arch nemesis!

Sure, you can model things in a really stupid way. It takes knowledge
and patience to understand how to best put abstracts together to make
a whole that works well. And, to be honest, "convert" is a terrible
choice and concept for a resource. Think of the name; resource -
closer to a data object or container or abstract notion than, say,
something that you do. When I walk, I'm not using my walking resource;
I use my two resources called "feet" and possibly some latent part of
my resource "brain".

And on an on it goes. But I have to run; have a playing gig. :)

Regards,

Alex
--
Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/service-orientated-architecture/join
(Yahoo! ID required)

<*> To change settings via email:
service-orientated-architecture-digest-***@public.gmane.org
service-orientated-architecture-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
service-orientated-architecture-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Loading...