Skip to main content
    Country/region [select]      Terms of use
     Home      Products      Services & solutions      Support & downloads      My account     
developerWorks  >  Blogs  >   developerWorks

author Middleware and tools

Donald Ferguson is one of 53 IBM Fellows (IBM's highest technical position) in IBM's 200,000 employee technical team. Don is also the Chief Architect for IBM Software Group. Don chairs the SWG Architecture Board, which oversees the architecture and integration of WebSphere, DB2, Lotus, Tivoli and Rational products. Don was the original Chief Architect for the WebSphere family of products. Don joined IBM Research in 1985. His interests include raising and playing with his children, distributed systems, simplifying application development, systems management, Web services, transaction processing, performance and karate.

Thursday April 06, 2006

Less is More -- Continued

James Governor and I had an e-mail exchange. I probably overreacted to the "did not get the memo" comment. E-mail and blogs cannot replace speaking, and speaking cannot replace meeting. No matter how hard we try, we are animals that evolved around a campfire talking to and watching each other. Whenever we communicate any other way, we have problems. I will try to spend more time around the campfire with people who are focusing on simple, and less is more. Plus, Sam Ruby tastes better over barbecue.

Apr 06 2006, 10:05:10 PM EDT Permalink

Friday March 31, 2006

Less Code

James Governor ( seems to think my prior post indicates that I did not get a memo. I probably did not. I am famously clueless.

This is the second time someone on the Web has insinuated that I make things too complex. Moreover, both bloggers were sarcastic, bordering on snide. Let's avoid ad hominem comments.

When I brief customers, I begin by saying, "If things seem complex, it is me." I used to think I understood a lot of stuff and only had an hour to present. So, things appeared confusing. My daughter told me I am just confusing. Period.

Less code is good. A colleague once said to me, "It is very hard to make software simpler by adding more software." He is right. I keep phrases in my mind to help me remember and focus; this is one. (Another one is, "No thank you. I prefer not to sit on the bear," but that is for another day).

Consider a scenario in which an enterprise wants to adapt/extend three existing applications, make them available over a messaging system, build a couple of workflow processes and make the processes available through a GUI. Companies do need to do things like this. The number of lines of IBM product code that supports this scenario has decreased by a factor of at least 5 in the past five years. That is a fact. I can prove it. I have witnesses. I became an IBM Fellow and SWG Chief Architect about five years ago. Draw your own conclusions. We delivered. Clearly I did not do this all by myself. SWG's team did. This started five years before the "memo."

We will make things even simpler. We will also not lose our ability to solve real problems. Our middleware and tools are number one in almost all markets in which we compete. Our share grows. Customers vote with their money. They clearly do not give us the money because they read my blog.

I am not naive. We are not perfect. We have a lot to do. People who know me, including customers, know that I speak plainly. I honor my committments. I promise that I will continue to drive simplicity, reduction and fit to finish. When you want to solve a problem, you will get the minimum you want and need. Everyone in the food chain in IBM is driving this agenda. We will let people solve real problems with the simplest SW and tools possible. Period.

If anyone wants to talk to me about the ideas, let me know. I like doing this in person, if possible. I do not like blogging. It is not because I do not have the time or "do not get the Web." I don't like talking. My nickname in college was "Silent Don." I am from rural New England. This blog used all my words for the next three days.

Calvin "Silent Cal" Coolidge was also from rural New England. A newspaper reporter was going to the White House for a state dinner. She bet her editor that she could get Silent Cal to say more than three words to her at dinner. At dinner, she charmingly told the situation to Silent Cal. His response. "You lose." My hero.

Mar 31 2006, 04:01:00 PM EST Permalink

Tuesday December 27, 2005

SOA Product Complexity

IBM has been running several customer events and analyst events explaining our SOA products. In general, the events have gone well and the feedback has be good. Some customers and analysts have expressed some concern about complexity. I will try to clarify our products, their responsibilities and a simple, consummable approach to using them. The following exposition reflects my way of thinking about SOA.

First, there are "basic services." These are the reusable building blocks of functions. Programmers can build these services as "plain old Java objects (POJOs)" or Stateless SessionBeans. In their implementation, the basic services can use JDBC, JMS, other EJBs, etc. Programmers can use Rational Application Developer (RAD) to build the basic services and deploy them in WebSphere Application Server. WebSphere Application Server does not require RAD, and programmers can use tools as simple as Emacs. RAD also can build services that deploy into other environments, like Tomcat.

RAD and WebSphere also provide simple support for "data services," which are another type of basic service. There is simple development tool and runtime support for generating WSDL and services that wrap SQL queries and stored procedures. Again, RAD is optional, but offers value.

Second, there are "composite services." A composite service is a service that aggregates multiple services and implements functions that coordinate the services. For example, there may be basic services for CRM, ERP and Billing/Accounting. A composite service would implement the "Process Purchase Order" function that knits together calls to the existing services. Programmers can implement composite services using POJOs or Stateless SessionBeans. There are some other models or styles of implementing composite services that are simpler, more intuitive and more flexible. WebSphere Process Server (WPS) provides runtime support for these composite service styles, and WebSphere Integration Developer (WID) provides tools. Some examples of composite service implementation styles are:
-- BPEL4WS (workflow) processes.
-- Business State Machines
-- Simple Business Rules

There are also some types of service that are useful when aggregating other services into a solution. WID and WPS also provide support for these types. Examples are:
-- Interface Maps: This is a service that adapts or maps between a requested service interface and an implemented service interface. For example, a reusable purchase order management process may declare the expected SOA interface to a CRM system. The actual SOA interface may be different. An interface maps converts between the expected and implemented interface.
-- Selectors: In some environments, there may be multiple implementations of a specific service. For example, there may be different credit card processing services for different issuing banks. A selector is a service that uses data fields to select the correct implementation.

WPS is a superset of WebSphere Application Server. WID is a superset of RAD. Customers use WPS and WID if there are service styles or types in these products that they find useful.

IBM also announced WebSphere Enterprise Service Bus WESB). Currently, customers can implement an ESB using WPS or WebSphere Message Broker/MQ-Series. There are many functions in WPS that customers do not need for simple ESB scenarios. So, there is a subset of WPS that forms a simpler, more focused ESB. WESB will also provide tool support for common, in bus functions like message routing, database lookups during message processing, message transformation, etc.

WebSphere Message Broker offers additional functions and scalability relative to WESB. WebSphere Message Broker is also an incremental extension to customers existing MQ infrastructure. Customers may find it more natural to use WebSphere Message Broker as their next step evolving to an ESB from MQ, without using WebSphere.

Not all customers are alike. Different customers have different objectives and different next steps to SOA. IBM's SOA product family provides support for each of the simple next steps. In general, the products have a Russian doll model. Each more powerful products is a superset that adds functions to a simpler product.

SOA also introduces a requirement for systems management and security, for example service monitoring. WebSphere products come with embedded, WebSphere focused support for security and service management. Customers can choose to use Tivoli products in addition to the base WebSphere functions. For example,
-- IT Composite Application Manager for SOA supports end-to-end service monitoring and management over multiple environments in addition to WebSphere, for example WebLogic and .NET. Some customers will use IT CAM for SOA without using WebSphere at all.
-- IT Composite Application ManagerM for Response Time Tracking provides support for end-to-end monitoring and reporting of response times for many workloads, including SOA. IT CAM for RTT additionally monitors other response times, for example simple Web access and dynamic Web pages.

Tivoli is moving to a model in which these products are additive, and are plug-ins to a common configuration database and portal. Again, customers can get started solving the next problem they face.

I am happy to use this BLOG to discuss issues and customer/analyst perceptions. Our objective is to have a simple set of products that integrate well together and provide a consummable, intuitive next step for customers moving to SOA.

Dec 27 2005, 09:25:00 PM EST Permalink

Tuesday December 06, 2005

SOA Paper

One of the SOA papers I referenced in previous blogs can be found here -- There are other interesting papers in this System Journal issue. I will also be attending the International Conference on Service Oriented Computing 2005 in Amsterdam next week. I will post references to interesting material I see.

Dec 06 2005, 10:47:00 PM EST Permalink

Saturday December 03, 2005

John Vlissides

John Vlissides passed away earlier this week. John and I were contemporaries at IBM Research. We incoporated many of John's ideas in Research projects that I led before I transferred to IBM Software Group. John was a great guy and working with him was a lot of fun.

Dec 03 2005, 05:42:00 PM EST Permalink

Saturday December 03, 2005

I Passed

I passed the second half of my black belt test. All I can say is "Ow!"

Dec 03 2005, 05:39:00 PM EST Permalink

Tuesday November 29, 2005


I have the second half of my black belt test this Saturday. It is 12 rounds of sparring. We'll see what happens.

I have started thinking about some next generation workloads that will tax our scalability, programming model and tools. My current thoughts of interesting workloads are:

-- Content Management
-- Event Driven Processing, RFID
-- SOA based integration spanning organization boundaries
-- On-line collaboration

I am interested in hearing what people think.

Nov 29 2005, 10:28:00 AM EST Permalink

Monday October 31, 2005

Survived and Miscellaneous

I am still waiting to take the second half of my Kenpo black belt test. The sensei and shodans are trying to get me ready. They put me through 9 rounds of sparring last Wednesday with a 30 second break between rounds. On the actual test, I get a minute between rounds. It does not sound like much, but that extra 30 seconds makes a world of difference.

On the technical front, we are starting to roll out new elements of our platform and SOA vision. One thing that is really interesting is PHP. Something we have done to start bringing together some thoughts around PHP and SOA is to provide Service Data Object support for PHP. If you are interested, check-out I am interested in what people think.

Oct 31 2005, 10:29:00 AM EST Permalink

Friday September 30, 2005

Near Death Experience

"What doesn't kill you makes you stronger?"

I passed the first half of my Kenpo karate black belt test a little more than a week ago. It was three hours, almost non-stop, of katas, techniques, kicks, punches, etc. What's worse, I was testing with a 16 year old, and the test went at his speed. I thought I was going to die, and actually tried to quite the test. Folks pushed me back onto the floor and made me finish. When I go home, I drank a gallon and a half of fluids (that's 10 pounds folks).

Part II is 12 rounds of sparring. The 16 year old took his second half last week. I was his "corner man," supporting him between rounds. The sparring section of the test seems to be some funny mix of Mortal Kombat, the Romand Forum and Marine Corps basic training. The algorithm seems to be that if 12 different black belts cannot cripple you, kill you or make you quit, you get a black belt. There is a requirement that I throw "8 kicks per round." This is going to be hard. Every time I throw a kick, it feels like I am lifting a log off of the ground.

I have been using the dojo and how the instructor runs it to shape my thinking about "small-medium business" thinking. I should probably start using the dojo to shape my thinking about software for medical care, prosthese or maybe funeral services.

Not sure when I take the second part of the test. If my blogs completely end, you will know why.

Sep 30 2005, 10:14:00 AM EDT Permalink

Thursday September 15, 2005

A Consumable SOA Foundation

A Consumable SOA Foundation

IBM's SOA vision and product portfolio is broad, deep and complete. Competitors cannot attack our product family and vision on function, performance or completeness. Instead, they claim we are "too complex" or "poorly integrated." Frankly, this is baloney. I am going to succinctly address complexity in this blog entry. We are authoring a paper for architects and programmers on starting points for SOA, which we will link here. I want to address the complexity problem quickly, however. A subsequent entry will address integration.

Our industry uses terms like "ease of use" or "simplicity." IBM Software Group and I like the term "consumability." Simple cannot mean simplistic or incomplete, which most of our competitors fail to grasp. Consumable means that there is a "bite size" next step no matter where you start or where you are on adopting SOA. Most of our competitors are simplistic and incomplete, which means that all you get is the next bite. There is no meal. They turn your hunger into their virtue. I do not make my kids eat all of their meal at once nor do I give them only a single morsel. We take the same approach with our customers and partners -- we offer you a complete meal that you can consume when your are ready. Unlike my kids, you can start with dessert if you want. Actually, I let my kids start with dessert too, but we do not tell mommy.

A BLOG entry cannot adequately cover all of the starting points for SOA, or all of the roadmaps. Each customer and partner has the flexibility to start where they want and to evolve as their business needs demand. I am going to provide some examples of simple first steps to demonstrate the breath, completeness and consumability of our products.

Mainframe Services:

There is a very simple approach to publishing CICS and IMS transaction programs using WSDL and making them accessible through WS-Interop protocols. One does not need for a WebSphere runtime or an ESB. It is possible to call the WSDL services from .Net, WebLogic or any Web service compliant runtime and tools. WebSphere Studio Enterprise Developer provides tool support for simplifying the generation of the Web serviceas artifacts, and WebSphere Asset Analyzer provides assitance for identifying services based on existing metadata.

Our tools also support the Web services abstraction over JMS/MQ. So, a site can grow from simple SOAP/HTTP to a more powerful messaging infrastructure when required.

The Database:

We have very simple tool support for publishing a set of SQL operations or stored procedures through WSDL and WS-Interop. WebSphere is one runtime the tools support, but the tools and artifacts run in multiple Java servers. Our initial tool support several years ago first worked with both Tomcat/Apache SOA and Tomcat.

Our WebSphere Information Integrator products have tools and runtime support for building an integrated data model and database over multiple back-end databases (DL/1, VSAM, Oracle), other data subsystems (e-mail, file systems) and applications. Information Integrator support Web services for one of the environments that it integrates. One can integrate .Net applications into an information model that federates DL/1, VSAM, e-mail, etc.

Our database products support surfacing Web services operations as user defined functions (UDFs) in the database. This allows SQL programmers to include Web services operations into their queries and stored procedures without learning a new API and metaphor, with tooling support in WebSphere Studio.

The Application Server:

WebSphere provides simple "one button" support for publishing Java classes ("Plain Old Java Objects") and Session EJBs as Web services. The tools also support a top-down model in which one defines (or gets sent) a Web service interface, and implements it in Java. The programmer does not need to know anything about processes, ESBs, etc. to produce and consume services.

WebSphere Process Server provides support for building composite services that aggregate other services using a standard model (BPEL4WS). Since some business problems are more naturally solved using state machines, and some programmers like the state machine model, we also support this abstraction. In both cases, programmers can build powerful business processes that use multiple different types of service with little or no programming. Since some programmer like to do scriptlets in their workflow processes, we also support BPELJ, which we co-authored with BEA.


IBM helped drive the Web Services Remote Portlet specification. Our portal can publish and consume WSRP compliant portlets. Doing so is done through simple configuration, and does not require programming. Our Rational tools also provide wizards for building a Web application or Portlet that interacts with one or more Web services. The underlying Web service may be a mainframe application, BPEL4WS process, etc.

I could go on for hours and hours. Programmers can start with Portal and evolve to ESB or Process server, or start with Web service enablement of mainframe applciations and build a portal, or ... ... There is always a consumable next step on the SOA roadmap you have chosen. We do not force you to change the way you think and they way you evolve to match our limited product portfolio and vision.


Ultimately, our product family and SOA vision support several key themes. One of the themes is different styles for "integration." The core styles our products support are:

Message Centric Integration: Some programmers like to think of the messages in the enterprise, where they come from and where they go. Our ESB products and tools are a natural next step.

Process Centric Integration: Some programmers like to think of "the enterprises business processes," and how individual steps map to existing services. WBI Modeler, WebSphere Integration Developer and WebSphere Process Server are a natural solution.

Workspace Integration ("On The Glass"): Some programmers simply want to provide role and task based workspaces to allow employees, partners and customers to interact with "services." WebSphere Portal Server and tools, evolving to Workplace, meet this use case.

Information Integration: Sometimes the business problem is simply to build an integrated, coherent information model over multiple sources of data.

One can use an ESB without process integration or a portal. One can integrate mainframe applications into portal workspaces through Web services. The different styles of information also compliment each other, when that is what the customer needs.


In summary, our SOA foundation is complete and consumable. We will be elaborating on these thoughts in writing over the coming days.

Sep 15 2005, 12:04:00 PM EDT Permalink

Thursday September 15, 2005

Too Cool, Continued

I found someone who was awake while I was on the flight back to the U.S. I called her on Skype over the wireless Internet on the Lufthansa flight. It worked like a charm. I was surprised that there was no perceptible satellite delay.

Sep 15 2005, 11:53:00 AM EDT Permalink

Saturday September 10, 2005

Too Cool

I am posting this entry from a trans-Atlantic Lufthansa flight. The connection is pretty good. I also used Skype to check the voicemail on my cellphone, which is turned off right now, and left a message for myself. It all worked.

There was only one problem. There is a transmission delay for the "sound" transmission. Pushing the "buttons" on the phone travels as sound. The voicemail "operator" and I got out of synch some how. Her response to me that I had initially entered an invalid mailbox (number got dropped) got recorded as a prefix to my test voice message for myself on the second try.

Sadly, no one I know is awake.

Sep 10 2005, 06:00:00 AM EDT Permalink

Thursday September 08, 2005

Miscellaneous Stuff

I will post the general Systems Journal paper here once the journal publishes it. They are sensitive to broad pre-distribution of the paper. I can mail people copies as long as it is not dozens of people.

I am using Skype while in Germany. I have to admit, it is pretty cool. I am flying back to the U.S. on Lufthansa. I am going to try making calls using Skype over the WiFi connection on the Lufthansa flight.

Sep 08 2005, 04:49:00 PM EDT Permalink

Saturday September 03, 2005

SOA Blogs

We have started some addition BLOGs at

We have als started authoring some papers on our SOA programming model on developerWorks. The URL is

Marcia Stockton and I also authored an IBM Systems Journal article that pulls a lot of the pieces together. If you want a copy, send me an e-mail.

If you are "out there," and read this BLOG, let me know. I am not sure anyone is "listening."

Sep 03 2005, 09:57:00 AM EDT Permalink

Friday May 13, 2005


It seems that there is a story in the Silicon Valley press that IBM is encouraging IBMers to "blog" for various business reasons, and providing guidance on what to say. Those of us in IBM find that kind of funny. If I could get IBMers to say what I want them to say, my life would be a lot easier.

Also, I have started using Firefox. It seems pretty good.

May 13 2005, 06:03:00 PM EDT Permalink

Previous month
  May 2006

RSS for

RSS for

Some J2EE Design Patterns


Recent Entries
Less is More -- Continued
Less Code
SOA Product Complexity
SOA Paper
John Vlissides
I Passed
Survived and Miscellaneous
Near Death Experience
A Consumable SOA Foundation
Too Cool, Continued
Too Cool
Miscellaneous Stuff
SOA Blogs

Blogs I read
Grady Booch

Special offers
Save on Rational testing software
Download trial versions of popular IBM software
Register for the DB2 Information Management Technical Conference

More offers

    About IBM Privacy Contact