aspose file tools*
The moose likes Web Services and the fly likes What is SOA Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "What is SOA" Watch "What is SOA" New topic
Author

What is SOA

Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Google search will throw millions of hits but I am not sure that I have understood the exact definition of SOA. What I know

SOA is architectural style where business components are exposed as services across the network. My question would be whether HTTP servlets or EJB qualify as SOA ?


Groovy
Taurus Thunder
Greenhorn

Joined: Apr 15, 2008
Posts: 1
Not really. They are really web/distributed components unless they are made to support the SOAP protocol.

HTTP Servlets supports HTTP protocol and
EJP supports either JRMP or IIOP
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

I don't think not using SOAP would make a service non-SOA.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42929
    
  68
Using HTTP or SOAP or servlets or EJB are all implementation details, while SOA is an architectural style. All these can be used to implement a SOA, but using them is neither a necessary nor a sufficient criterion for an architecture being a SOA.

The important part is the "S" in SOA - service. SOA's hallmark is that applications are pieced together from software services that by themselves are independent of their use, and which may be implemented in a variety of languages and protocols.
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Originally posted by Ulf Dittmer:
Using HTTP or SOAP or servlets or EJB are all implementation details, while SOA is an architectural style. All these can be used to implement a SOA, but using them is neither a necessary nor a sufficient criterion for an architecture being a SOA.

The important part is the "S" in SOA - service. SOA's hallmark is that applications are pieced together from software services that by themselves are independent of their use, and which may be implemented in a variety of languages and protocols.


If I have some Java classes offering some service say AccountingService , payroll service etc would it qualify as SOA ? They are independent classes
Choopong Songcharoenkij
Greenhorn

Joined: Sep 28, 2004
Posts: 18
There are a number of ways that you can look at the concept of SOA.

Personally, I like the concept provided by IBM, that is:

A SOA is a framework for integrating business processes and supporting IT infrastructure as secure, standardized components -- services -- that can be resued and combined to address changing business priorities.

In Java, EJBs can be exposed as the Web Services. HTTP Servlets are mostly implemented as clients of web services. If you want to go deeper in Java Web services, you should see JAX-WS specification.


SCEA5.0 (In Progress), SCBCD5.0, SCBCD1.3, SCWCD5.0, SCWCD1.4, SCJD, SCJP6.0, SCJP5.0, SCJP1.4, SCJA1.0<br />OMG Certified UML 2.0 Professional - Fundamental - Intermediate - Advanced <br />Oracle Database 10g Administrator Certified Associate
Binildas Christudas
author
Greenhorn

Joined: Sep 02, 2002
Posts: 25
In Java, EJBs can be exposed as the Web Services


Today, it is easy to expose many other kinds of components too, including POJO (Plain Old Java Objects), RMI-IIOP, etc. as SOAP compliant services to the external world - thanks to specifications like JBI.

The below book will show you step by step, with code, how you can expose POJO components as services using an ESB.

PACKT book titled "Service Oriented Java Business Integration":
http://www.packtpub.com/service-oriented-java-business-integration/book
http://www.amazon.com/Service-Oriented-Business-Integration-Binildas-Christudas/dp/1847194400


Binildas C. A.<br />Principal Architect, <a href="http://www.infosys.com/" target="_blank" rel="nofollow">http://www.infosys.com/</a><br />(SCJP, SCJD, SCBCD, SCEA, MCP, TOGAF, LZA)<br /><a href="http://www.packtpub.com/author_view_profile/id/180" target="_blank" rel="nofollow">http://www.packtpub.com/author_view_profile/id/180</a>
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42929
    
  68
Originally posted by Prad Dip:
If I have some Java classes offering some service say AccountingService , payroll service etc would it qualify as SOA ? They are independent classes

You can certainly use various definitions for "service", but in your example no outside clients can make use of them, so no, that's not SOA. If you build a couple of WS to access them individually, then yes.
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Thanks Ulf. Let us start defining characteristics of SOA service

1. Should be accessible across network.
2. Should be search able. (Registry)

Guys, Please add more.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42929
    
  68
Gotta disagree right away :-)

A registry (what is usually thought of as the realm of UDDI) is not required, and most WS today are not listed in one.
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Ulf, your point is taken.

1. Should be available to external clients.

It need not be a WS. It could be a an EJB over RMI/IIOP. Securtiy is optional thing.

No more points ? SOA is over hyped.
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2922
    
    5
Originally posted by Prad Dip:
Ulf, your point is taken.

1. Should be available to external clients.

...

No more points ? SOA is over hyped.


Granted SOA is hyped for the wrong reasons but you also fail to grasp the essence of SOA because you are way too technology oriented. Technologies are a means to an end. SOA is a solution approach to a certain set of problems that occur when trying to automate large-scale business operations.

See Web services and SOA and Definition of SOA.
David Victor
Greenhorn

Joined: Sep 07, 2007
Posts: 4
The two articles below may be of interest.

http://www.bcs.org/server.php?show=ConWebDoc.3041
http://www.bcs.org/server.php?show=ConWebDoc.12847

I wrote the first one during a career break where I was trying to find out from being a complete novice what is really meant by SOA.

The second article is a summary of the IDC 2007 SOA conference. Again written from the position of an interested observer, I am not commercially involved in SOA but wrote the articles to share experience with the IT community via the British Computer Society.

A key point though is its not about any single technology. Hence the 'A' in SOA is the one that is equally significant.
[ April 15, 2008: Message edited by: David Victor ]
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Let me see if I understood things. An enterprise may be having many applications some of them legacy ones. Making the enterprise SOA compliant involves making the services (applications) interoperable by exposing them in a standard way. This could be done by WS or some other means. The services no longer exist in isolation. You are aligning your IT (services)to business. Benefits are cost and quicker time to market because you are reusing your existing applications.

Do I new know SOA or not?

Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42929
    
  68
Making the enterprise SOA compliant involves making the services (applications) interoperable by exposing them in a standard way.

You have to create services first. Applications and services are not the same thing. An application might use many services, and a service might be used by many applications. Defining which parts of which application might make a good service, and then implementing it as such, and finally adapting the applications to use those services, takes considerable time and effort.
[ April 17, 2008: Message edited by: Ulf Dittmer ]
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Originally posted by Ulf Dittmer:

You have to create services first. Applications and services are not the same thing. An application might use many services, and a service might be used by many applications. Defining which parts of which application might make a good service, and then implementing it as such, and finally adapting the applications to use those services, takes considerable time and effort.

[ April 17, 2008: Message edited by: Ulf Dittmer ]


An application may be doing lot of things and a service exposes some of things of application useful to the outside world ?
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2922
    
    5
Originally posted by Ulf Dittmer:
Applications and services are not the same thing.


It is my understanding that in the context of SOA you don't usually talk about "applications".

An application is usually an entity that is coarser grained than a component and usually contains functionality to support some business activity. So in that sense services are simply machine accessible applications. However as you observed some applications also depend on other services to do their work - so the concept of an "application" isn't all that useful in SOA - other than to express that services are usually "bigger" than components.

Instead one talks about:
  • Basic Services - (Basic data and logic services, each service only represents one single backend; Fundamental SOA)
  • Composed Services - (aka intermediate services; services that orchestrate other services to implement a (short term) micro flow inside a business process; Federated SOA)
  • Process Services - (aka process-centric services; services that represent (long term) work-flows; Process-Enabled SOA)


  • You then use these services to implement your business processes which describe the activities or tasks that have to be completed to fulfill a specific business need. The business process is realized by either orchestrating the interactions between the services (i.e. there is a central "conductor" which could become a scalability issue) or through service choreography (i.e. there is no centralized control which sometimes moves SOA towards "Event Driven Architecture" (EDA)***).

    The business process itself is composed of sub-processes, which are composed of sub-sub-processes, etc. At the very bottom you have "steps" that are combined to "activities" - both of which compose the workflow layer. When you are realizing the business process you don't really care if you are dealing with a basic, composed, or process service - what you care about is whether the service implements the required business step, activity, sub-[...-]process, etc. (or a sequence thereof).

    Keep also in mind that in SOA a business process can and will stretch "over a large and heterogeneous landscape of existing and new systems that are under the control of different owners" (SOA in Practice).

    *** It's interesting to note that EDA requires publish-subscribe communication while web services only directly support request-response communication. So additional plumbing (protocols/complexity) is needed to make web services fit into this paradigm.
    [ April 17, 2008: Message edited by: Peer Reynders ]
    David Victor
    Greenhorn

    Joined: Sep 07, 2007
    Posts: 4
    Originally posted by Peer Reynders:


    Keep also in mind that in SOA a business process can and will stretch "over a large and heterogeneous landscape of existing and new systems that are under the control of different owners"


    This is really the key as I understand it. We're looking at "service" from the level of a business service where the boundaries it spans are not restricted to a technology, application or even common life-cycle phase between potentially federated providers of the service.

    I really recommend CBDI Forum as a very good resource for quality reference material on SOA. http://www.cbdiforum.com/
    Anderson Fonseca
    Ranch Hand

    Joined: Feb 05, 2004
    Posts: 126
    SOA is an architectural style, is not just a technology, but it�s use technological components for suppport it.

    Would be interesting think SOA as great network in organization joining process and peoples, capturing essentially the business neededs, studying, mapping and converting this process to newer process with a better performance and transforming to solutions providing access as services using webservices, corba, ejb, etc.


    Anderson Fonseca :: Brazil<br />SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCDJWS, SCEA(I), SCEA 5 (I,II,III)
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: What is SOA