Top down vs bottom up SOA

This article compares the two approaches of web services development - top-down and bottom-up - as the battle between the purist versus the pragmatist, the value generator versus the cost saver and the Business Evangelist vs IT implementer.

Web services can be created using two methods: top-down development and bottom-up development. Top-down web services development involves creating a web service from a WSDL file. By creating the WSDL file first you will ultimately have more control over the web service. When creating a web service using a top-down approach, first you design the implementation of the web service by creating a WSDL file.When creating a web service using a bottom-up approach, first you create a Java bean or EJB bean and then use the web services wizard to create the WSDL file and Web service.


Should a top-down business-centric approach or a bottom-up approach be employed given that the Business Unit (BU) is more reactive and sensitive to the realities of IT?

The Model-Driven Architecture (MDA) provides an approach aimed at achieving technology independency through full top-down development. In top-down approach the WSDL is designed from a business point of view and is not driven by a service consumer or an existing application. The “WSDL to Java” tool generates java code according to JAX-RPC or JAX-WS. These classes can then adapt the existing business logic.

Although bottom-up Web service development may be faster and easier, especially if you are new to Web services, the top-down approach is the recommended way of creating a Web service. The bottom up approach generates web services for which the design is driven from an application point of view (developer driven) and will not address the need for other consumers.

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks


  1. Phumlani Mbabela says:

    Short , on point and sweet. Thank you. :-) .

    • Paul Vanderveen says:

      The following quote appears to have originated in the Eclipse documentation:

      “Although bottom-up Web service development may be faster and easier, especially if you are new to Web services, , the top-down approach is the recommended way of creating a Web service. .”

      I am researching this topic, and I see this quote used repeatedly on the web to promote the top-down approach. This is a simply an opinion that is presented without any facts or conditions where one may be better than the other. I am trying to get a realistic answer to which our team should use. Members of our team rarely create web services, and we are only using them to expose some features of our app to outside consumers. We are not building an SOA. I am leaning toward bottom up mainly because the services can be created in minutes instead of hours, the learning curve is much easier, bottom up is well supported by the IDE we use, and once they are created it is very easy for team members to visualize, run, and modify the services via the IDE. Top down, by contrast, seems to bury the services in layers of abstraction that are difficult for the casual service developer to create, comprehend, and visualize. If I can find a way to do this with top-down I’m in, but right now I’m leaning the opposite way.

  2. You really make it seem so easy with your presentation but I
    find this topic to be actually something that I think I would never understand.

    It seems too complex and very broad for me. I’m looking forward for your
    next post, I will try to get the hang of it!

Speak Your Mind