 |
 |

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.
Dr. Ferguson is no longer an employee of IBM.
|
 |
Business Architecture
I have been thinking about business architectures. With RSA, UML and WebSphere Business Modeler, there has been a lot of progress on business modeling. IBM has also spoken about the Component Business Model for a business architecture.
I am interested in linguistics as a hobby. I wonder if there is an opportunity to use a language based approach to modeling businesses. In Catholic school, I learned to diagram sentences. Most business domains have a well-defined business vocabulary defining connotation to words. For example, I was once in a confusing two day meeting with an insurance company. After the second day, I realized that the confusion was due to
-- When we said "application," we meant the code we were going to write
-- They meant "the physical piece of paper" a customer submitted to apply for insurance. The customer would say things like, "At this step, we photocopy the application."
We also assign precise semantics to words like MUST, RECOMMEND,SHOULD in our various standards documents.
I will be thinking about
-- Business vocabulary
-- Verbs for operations
-- Nouns for business artifacts
-- Sentences using MUST, etc to define policy
Sep 22 2006, 09:21:49 AM EDT
Permalink
|
Service Component Architecture
We have made significant progress on SCA. The progress includes a partner community, product plans and open source. We may author a vision paper that represents where IBM sees SCA going. Please let me know if you would like us to write a paper on our vision.
Sep 22 2006, 09:12:15 AM EDT
Permalink
|
Lectures
I was in Vienna and Budapest last week. I gave a keynote at BPM 2006 (http://bpm2006.tuwien.ac.at/) on "Enterprise – Business Process Management/Business Performance Management: Architecture, Technology, Standards." I also gave a lecture at the Software Technology Forum at the Budapest University of Technology and Economics (http://www.inf.u-szeged.hu/stf/helyszin-en.php). Finally, I am teaching a course on the architecture and design of Web application servers, e.g. the WebSphere platform, at Columbia University this Fall (http://www.columbia.edu/cu/bulletin/uwb/). If you want copies of the slides, let me know.
Sep 10 2006, 05:42:55 PM EDT
Permalink
|
Pluto
Two or three years ago, Neil deGrasse Tyson spoke at an IBM event. He spoke about the controversy surrounding Pluto's status as a planet. Dr. Tyson was a very interesting speaker and hilarious. He read some email he had received from people commenting on his objections to Pluto's status. The funniest one went something like this,
"Pluto is an all American planet, discovered by an American in the American Century. Are you un-American?"
Aug 25 2006, 09:44:35 AM EDT
Permalink
|
What's New about SOA -- V2
The first set of comments on the previous entry reminded me of two ideas. When I posted the original entry, I had not consulted my presentations on SOA, and forgot two benefits.
- Most previous approaches to distributed programming strove for "local \-remote transparency." The approach took a single process/adress space model and spread it over multiple processes and machines. Local remote models can be successful over networks, but only for certain programming styles. For example, there should be a few, coarse grain calls between modules/objects and no shared data structures. These guidelines describe some of the fundmanental assumptions of SOA. So, we use the term "remote-local programming" to describe SOA and Web services. Programmers implicitly assume that a service is remote, and the infrastructure provides transparent optimizations. The remote-local approach is proving more successful, especially for the Internet.
- Web services did not define a new, base set of standard protocols. The Web service standards built on HTML/XML, HTTP, PKI, etc. Enterprises had already deployed firewalls, DMZs, sprayers, ... for the HTML/HTTP/email use cases of the Internet. Web services built on the already deployed infrastructure, reducing cost and risk.
It is tempting to think that one of SOA's benefits is enablement of closer alignment of "business and IT," and enabling business model driven development. SOA does enable better alignment between business architecture and IT realization, and this is perhaps the most important benefit. My blog entries were on technical differences between SOA/Web services and previous standards. One could, and many did, align their IT and business architectures with message driven processing or CORBA. What's new about SOA for business == IT? Wait for the next entry.
Aug 20 2006, 02:08:17 PM EDT
Permalink
|
What is New about SOA
We had a meeting this morning to discuss some of our experience working with customers on SOA. Some fundamental questions arose. The one I found most interesting is "What's different about SOA and Web services? Haven't we heard this all before?" Customers often ask me this question. Many of the things we say about SOA we also said about RPC, message driven processing, CORBA, OO, etc.
There are several answers to the question.
- We really mean it this time -- No Kidding. Can't you take a joke?
- There are some technical differences:
- Web services are more language independent than previous approaches. For example, CORBA was very C-like and was awkward in Smalltalk. EJBs and Java are, by definition, focused on the Java type space. XML renders more naturally into multiple languages like C, Java, COBOL, etc.
- XML and Web services are less fragile and better accommodate change. For example, it is possible to add or reorder elements in an XML business object without necessarily breaking code using older versions. The same applies to WSDL. Most previous approaches like RPC or CORBA were often a distributed version of a runtime model with offsets into data structures or function tables. So, additions and reordering broke code.
- Previous approaches really had three data models and type spaces. For example, a CORBA application had: 1) IDL, 2) IIOP for inflight messages, 3) SQL if the application was accessing a database. Distributed Java has a similar approach with serialized objects, the Java language and JDBC/SQL. Web services have one type space (XML) for interfaces, data applications are manipulating, XML databases and in-flight messages. It may not be obvious why one type space is better than three. The primary reasons are simplicity and flexibility. In Web services, there could be one basic approach for converting a data structure/business object from one format to another, instead of potentially three different type models and tools. This could enable a simpler development tool suite and API set. Moreover, having a consistent model enables flexible and more dynamic placement of business logic. The transformation code could run in an application, in an active database or in network intermediaries (proxies).
- We designed Web services to support both asynchronous messaging and remote procedure call. Previous approaches started with one or the other, and then grafted the other model later on. For example, implementing a layer on top of MQ for simple RPC is common. CORBA was originally RPC centric, but then added support for asynchronous messages. In most cases, the after the fact grafting of one technique on another was awkward and error-prone.
- There is also a different process for evolving the standards. In the past, we sometimes authored the services and then implemented them. This led to interoperability problems. With the advent of open source, the community provides reference implementations during the specification development. This improves interoperability and eliminates ambiguity.
Are Web services "it." Probably not. We will see new technology come. I use the analogy of the tide. The tide comes in one wave at a time, and not all at once. Web services are the current wave, and it offers value.
Aug 18 2006, 10:18:23 PM EDT
Permalink
|
Software in the Next Five Years
A customer asked me to present my view of software in five years. I was very flattered and tried my best. If anyone is interested in speaking with me about my conclusions, drop me an email. Once I get a little more feedback, I will make the presentation and paper available. To pique interest, my top ten conclusions are:
- Software appliances and SW configurations integrated with virtual middleware
- Situational applications and end-user Web programming
- An enterprise SW architecture that includes open source, good enough middleware and products from IBM and other companies
- SOA and business policy/rules
- Composite Applications and Business Services
- SW evolving to exploit next generation HW, e.g. multi-core and intelligent network storage.
- SOA and EDA
- A web approach to data and storage
- Recipes, Patterns and Templates
- Web 2.0
Aug 18 2006, 09:50:30 PM EDT
Permalink
|
Less Code
James Governor (http://www.redmonk.com/jgovernor/archives/001460.html) 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
|
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
|
SOA Paper
One of the SOA papers I referenced in previous blogs can be found here -- http://www.research.ibm.com/journal/sj/444/ferguson.html. 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
|
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
|
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
|
Miscellaneous
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
|
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 http://pecl.php.net/package/sdo. I am interested in what people think.
Oct 31 2005, 10:29:00 AM EST
Permalink
|
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
|
|
 |
| S | M | T | W | T | F | S | | | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | 13 | 14 | 15 | 16 | 17 | 18 | 19 | | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | | | | | | Today |
|