• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

What is SOA

 
Ranch Hand
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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 ?
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think not using SOAP would make a service non-SOA.
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
author
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Ulf Dittmer
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 8945
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 2968
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
    Posts: 4
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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/
     
    Ranch Hand
    Posts: 126
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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.
     
    Politics n. Poly "many" + ticks "blood sucking insects". Tiny ad:
    Gift giving made easy with the permaculture playing cards
    https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
    reply
      Bookmark Topic Watch Topic
    • New Topic