Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Question for Mark Hansen: 2 concepts of SOA  RSS feed

 
Guos Hu
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Mark,

When I talk about Service Oriented Architecture, I think there are 2 concepts:

(1) The first concept is SOA an architecture style used to design applications and business processes at a service level, meaning every computing unit of work is defined as a reusable service. The features of this SOA concept include loosely coupled, coarse grained, re-useable etc.

(2) The second concept is that SOA is not only an architecture style, but also an implementation style: the application must be implemented with WSDL, UDDI, XML, SOAP etc.

With the first concept, even pure Java applications without WSDL can be designed as Service Oriented. So I like it better.

Another question: why SOA is platform and protocol independent? I think it is simply because all Vendors agree that and almost all important platform and protocal support the SOA requirement. Just like all browser support HTML. Similar to CORBA (of course beter than CORBA because it is a newer solution).

What do you think about the above questions?

Thanks a lot.
 
Mark D. Hansen
author
Ranch Hand
Posts: 61
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good questions

I think that SOA as you define it in (1) - an architectural style - requires (2) as an implementation style in order to be useful.

For a SOA to be useful, it must be able to encompass a heterogeneous set of computing environments. Just like the Web, you need standards (e.g., HTTP) that all participants must support. But, any technology that supports HTTP, can participate in the Web.

SOA, as a distributed architecture, must have *some* standards, so that a heterogeneous set of participants can all deploy and consume services.

Sure, you can implement the principles of SOA in Java without XML, WSDL, SOAP, etc. But, what is the point? SOA isn't a great architecture for Object Oriented design and programming. That isn't its purpose. Java is good at that. So is C#. SOA comes into play when you want to coordinate application A with application B, in a loosely-coupled manner, to automate a business process. If application A is in Java and application B is in C#, then you need some way for them to communicate.

Now, there are lots of ways to get Java to talk to C#. But, if your organization has put in the effort to design a good SOA, then most of the work has been done. And you don't have to keep solving the integration problem over and over again. You can simply deploy services and hook them together to automate a business process.

If all components of your computing environment speak SOAP and WSDL, then they can actually be grouped together into a SOA that is a valuable platform for supporting flexible automation of business processes. And that is the business goal.

The reason that it is a *big deal* that Java is finally getting good at Web Services is that it means that Java applications can more easily participate in an organization's SOA.

My book is designed to show you how to use the Java Web Services standards effectively to enable your Java applications to participate in a SOA.
 
Raghav Mathur
Ranch Hand
Posts: 641
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mark-

Can you please elaborate this. How does this contract(WSDL) between the client and the service work?

Originally posted by Mark D. Hansen:
SOA comes into play when you want to coordinate application A with application B, in a loosely-coupled manner, to automate a business process. If application A is in Java and application B is in C#, then you need some way for them to communicate.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!