Thursday, August 14, 2008
In case you thought the SCA rock stopped rolling...
Beta details here. Of course, our code is based on the Tuscany open source project which I've blogged about before.
I want to thank all of my development and beta team members for all of their hard work.
Friday, July 11, 2008
The TPC is working on a SOA Benchmark proposal submitted by IBM
Thursday, June 26, 2008
eWeek: "IBM WebSphere at 10"
Excerpt:
"IBM Senior Vice President and Software Group General Manager Steve Mills met with three of his top lieutenants in his office back in 1997 to discuss the "Webification" of IBM's enterprise tools. Out of that discussion the IBM WebSphere Application Server was born."I had just joined IBM in 1997 and was working on DB2 for OS/390. While I was trying to figure out what this "mainframe" thing was why anyone would want to manage it from OS/2, smart folks in Raleigh were creating the future. Well done, gents.
Wednesday, June 25, 2008
The Poor (Broke) Man's Java Profiler
Here is how you do it.
- Get the application running under load (or if its a single threaded long running operation, just let the operation get started).
- Send a BREAK signal to the Java process. In Unix/Linux, you can do this with kill -3 ProccessId. In Windows, you can do this by using a program called SendSignal (Note I don't endorse this tool, but happen to find it useful).
You'll see the process start to consume exactly one CPU in the system (on a uniprocessor box, 100% CPU, on a 4-way box, 25% CPU, for example). During this time the JVM is doing its job collecting up all the information for the core. At the end it will dump the core to the working directory of the application. Once it is done (could take some time) the CPU will go back to normal. - Let the process continue for a little while, so the application gets back into its normal state.
- Then repeat the previous steps starting with the BREAK signal three or more times (the more the better).
- Look at the information in the thread dump section (search for "Full thread dump") of the Java core and make sure it looks similar in all three (or more) core dumps. If so, you should have enough certainty to trust what you see in the core dumps.
In a future post, I'll talk about what to look for in the Full Thread Dump, but to get you started, if you see the same method repeatably on the top of the stack of multiple threads, that is what you want to go after first.
In the last two months, I used this approach successfully to find problems in an application server application (bad third party libraries) and a migration script (bad algorithm for handling large amount of data). Both showed rather clearly what needed to be fixed in the program. Also, since this comes with Java, you need no tools to use the "poor man's profiler".
If you have questions or if you find this tip useful, please post a comment on this topic.
Wednesday, June 4, 2008
Tuscany Graduated
Friday, May 23, 2008
Evans Data Study: RAD scores the highest user satisfaction
It was with great pleasure that I read the Evans Data Study that was released this week; the study was a survey of over 1200 IDE users, and the bottom line was that
Cool; that’s what we’ve been trying to deliver, and it’s gratifying to see that our users are pleased with what we deliver.
What was most heartening to me, though, was what the survey didn’t measure; namely
Back to the survey; results were provided giving an overall satisfaction of the different IDEs, and the various capabilities within the IDEs were also rated (how does your debugger rate, how do your web design tools rate, etc). Although we were first place in the overall rating, the
That actually doesn’t surprise me, as the editors were one of the areas I was most concerned about as well – and for that reason, the editors, and the editing experience were one of the areas we’ve spent the most time and energy on, in
- The various deployment descriptor editors in RAD 7.0 were attempting to abstract away the details of the actual changes being made to the underlying files – but we’ve heard from numerous customers that it’s more important to assist the developers… but still “leave them in touch” with the underlying files being updated. We have a great new editor framework (the source of several patents) that we’re using across RAD 7.5, that means developers who make a change in the editor, will have no problem know what (and where) they have changed in the actual file – but at the same time, we still provide lots of help and validation in editing the actual contents. These new editors are getting great feedback from our beta customers.
- We’ve had a big focus on refactoring operations and quick fixes, both of which surface via editors of all shapes and sizes. Eclipse has a great history when it comes to providing refactoring operations, and RAD 7.5 really takes and extends that model; we participate in many existing eclipse refactoring operations now (for example, a rename will do the right thing across the many J2EE artifacts, as well the just the Java code), and we have added several of our own, J2EE specific refactoring operations. These refactoring operations allow us to provide significant help to developers who are updating their code, while leaving the editors to do just that – provide a good, focused, editing experience. Again, the feedback from beta users to date has been very positive on the changes we’ve made.
- JavaScript is increasingly important in a web 2.0 world, and so we’re introducing significant new support for JavaScript in RAD 7.5 – we have a comprehensive new JavaScript editor, which we’ve integrated into all the right places; you’ll now get support like code assist, syntax validation, and colour highlighting whether you are editing a standalone .js file, or a JavaScript snippet embedded in the middle of an HTML file, while you’re using the RAD page design tools.
These are just a few examples of the changes, improvements, and new features we’ve been developing for quite a while in
Next up for me is the RSDC conference, in Orlando – we’ll be presenting and demoing
Tim
Thursday, May 22, 2008
GWC hosting an "Ask the Expert" day next Wednesday
The Global WebSphere Community (a.k.a. http://websphere.org) is hosting their annual "Ask the Experts" day with IBM Development and SOA experts on May 28th. You need to register as a GWC member to participate, but registering is free and fast and painless. The session starts at 10:00 am Eastern and ends at 10:00 pm Eastern, and is basically an opportunity for GWC to both ask questions and submit ideas about WebSphere products, directly to the product teams. Do you have a nagging issue or a great idea? This is your chance to share both with IBM.
Join in!
Jobs and lyrics...emotional design
Friday, May 2, 2008
On Consumability...
Wednesday, March 19, 2008
Web 2.0 Collaboration, Sharing and Social Networking on WebSphere at Impact 2008
Wednesday, February 27, 2008
Join me at Impact 2008 to discuss SOA Performance
This session will discuss SOA performance as it relates to the IBM WebSphere® portfolio. The portfolio view will begin with runtime aspects including basic Web services (including the new Web Services Feature Pack). The runtime aspect focus will continue and build to choreographing and integrating these services across IBM WebSphere Process Server, WebSphere Enterprise Service Bus, WebSphere Message Broker, and the WebSphere DataPower® SOA appliance. The portfolio view will then focus on the SOA lifecycle, business activity monitoring and situation detection, and governance covering WebSphere Business Monitor and the WebSphere Service Registry and Repository. In addition, historical views on SOA performance will describe how performance has improved over the past two years. Finally, the session will discuss best performance practices when implementing SOA solutions.
I was also lucky enough to be included in a set of videos "On the Road to Impact" along with Kyle Brown on Event Processing and Ruth Willenborg on Virtualization. Go ahead and watch the videos and feel free to comment.
Monday, February 18, 2008
IBM WebSphere Application Server Total Leadership in SPECjAppServer2004
Some numbers from this total leadership publish:
- The result of 14004 JOPS represents roughly 75,000 transactions per second against the DB2 database. Simply impressive.
- The closest competitor in total throughput was Oracle at 10519. The IBM result tops that Oracle result by 33%. The IBM result tops the highest Sun result (8439) by 66%. The IBM result tops the highest BEA result (8253) by 70%.
SPEC is a non-profit organization that establishes, maintains and endorses standardized benchmarks to measure the performance of the newest generation of high-performance computers. Its membership comprises leading computer hardware and software vendors, universities, and research organizations worldwide. For complete details on benchmark results and the Standard Performance Evaluation Corporation, please see www.spec.org. Competitive claims reflect results published on www.spec.org as of February 18, 2008 when comparing SPECjAppServer2004 JOPS on all published results as well as derived metrics calculated by SPECjAppServer2004 JOPS / Number of Application Server Processor Cores.
Friday, February 15, 2008
The facts of RAD
First of all, the transition from WSAD to RAD was purely a naming one. WSAD was delivered prior to IBM's acquisition of Rational, and RAD 6.0 was simply the next version of "WSAD" released under the Rational brand. RAD is entitled as a free upgrade to all active WSAD customers; there is no new cost - describing the transition from WSAD to RAD as complex or costly is either uninformed, or intentionally misleading.
The plumbing that formed the core of both WSAD and RAD was donated by IBM to the eclipse WTP project, to provide a defacto standard interface that others could extend - meaning that any tool extensions will work correctly and naturally with RAD. MyEclipse uses this base, so the basic project structure is the same - but the vast majority of the components that form RAD are not part of WTP; they are only available in the IBM offerings. Those value add components and functional areas are where we're spending most of our time and energy on, and that's where the real benefit of RAD comes from.
RAD 7.0, which has been available for over a year, includes comprehensive support for J2EE & Web Application developers, with support for pure spec compliant applications, as well as integration for all the WebSphere extensions - for example we don't just support JSF, we also ship and have outstanding support for the IBM JWL widget library; the latest version of JWL (which is only available with RAD) makes it fall-off-a-log easy to create an Ajax application, with no handwritten javascript at all (see http://webspherecommunity.blogspot.com/2007/06/simple-ajax.html for more details).
That said, simply providing spec level support is not really a differentiator today; that's why we donated the code we did to WTP. The RAD value proposition is it's ability to improve the productivity of developers across the entire development life cycle. Some examples:
- Some other products provide simplistic support of UML, that requires iterative generation of java code, followed by import actions to keep the diagrams and code in sync. This round trip engineering approach was available back in Rational Rose, and is a long way from state of the art now. RAD provides much more than that - for example, we provide UML visualization, which allows you to view, edit, and update Java code using UML views. There's no separate model to get out of sync; you're editing the live code, but in UML.
- All modern IDEs include support for database interaction and definition, but RAD has the benefit of working with the DB2 developers to provide exceptional support (for all major databases); RAD includes graphical views of your data topology, a SQL scrapbook, impact analysis tools, the ability to write user-defined functions (UDFs) & stored procedures, and phenomenal support for embedded SQLJ.
- RAD has in-depth support for application profiling, analysis & testing; you can execute, monitor, and trace the flow and performance of your application, right out of the box.
Of course, we also have the benefit of working hand in hand with our IBM colleagues, to provide the very tightest integration with WebSphere. It's not hard to deploy an application to WebSphere Application Server, but only RAD includes copies of three versions of WAS, to simplify your unit testing on a "real" WebSphere server, at no additional cost. Because we actually embed the WAS server, we support both remote application deployment and local application deployment, which gives you better deployment performance because there's no copying of files necessary. RAD also includes complete support for WebSphere Portal Server, including creation wizards, views, and editors that enable you to develop, test, debug, and deploy portal and portlet applications.
When it comes to production application deployment, RAD includes an advanced Jython editor, designed to simplify the task of developing and testing WebSphere automation scripts. We also offer unique integration with the WebSphere admin console, allowing you to capture key actions in the admin console and turn them into the equivalent Jython script commands. Finally, there's an embedded Jython debugger, that will let you single step through the admin script, examine variable values, etc.
IBM remains strongly committed to RAD; the next version of RAD (7.5) has been available as an open beta since late last year; you can find more details here: http://webspherecommunity.blogspot.com/2007/11/rational-application-developer.html. As you'll see if you try this code, RAD 7.5 provides many compelling features that focus on developer efficiency such as JEE refactoring and quickfix operations, while offering enhanced integration with products from all IBM brands, but especially Rational, WebSphere, and DB2. As I said in my blog entry, I'm really pleased with the progress the team has made on RAD 7.5; even though this is just a beta, the code is great quality, the performance is good, and all early reports are extremely positive - come check it out!
Tim Francis,
WebSphere Tools & RAD Chief Architect
Wednesday, December 26, 2007
WebSphere Process Server and ESB 6.1 Available
Links to more info:
WebSphere Process Server 6.1 new features
WebSphere Enterprise Service Bus 6.1 new features
WebSphere Integration Developer 6.1 new features
Enjoy!
Tuesday, November 20, 2007
WebSphere SIP Performance and Enterprise QoS helps AT&T
Another effort from the my performance team members is documented in the latest IBM press release.
This effort shows how:
- WebSphere Application Server is leading the way in critical new technologies (SIP)
- The WebSphere Application Server has performance that is not only leading, but also carrier-grade while being enterprise capable - including High Availability.
- Our commitment to driving open and trusted industry standard benchmarking
In WebSphere Application Server 6.1, we added support for the IETF Session Initiation Protocol (SIP). SIP is a request/response protocol for negotiating communication between two endpoints that has been widely adopted in the telecommunications industry. SIP is useful in Voice Over IP (VOIP), web click to call, conferencing, interactive voice response systems, instant messaging, and presence applications.
Below is a basic example of a session initiation between two parties. It shows a swim lane diagram of user@ibm.com starting a discussion with user@example.com with proxies inline to negotiate the session.

In the press release, we announce how AT&T plans to use our SIP technology:"AT&T is using IBM WebSphere Application Server and BladeCenter systems as a Session Initiation Protocol (SIP) service logic execution environment platform to develop mission-critical services for deployment on AT&T's IP-based network."
The features needed to support AT&T include not only SIP, but also technology that makes such latency dependent applications such as VOIP possible, along with enterprise class high availability. Also, performance is quite important. Also mentioned in the press release, we detail an internal SIP benchmark we ran along with the results:"IBM's WebSphere Application Server delivers telecom class infrastructures with a focus on SIP features. It is a carrier-grade application server that utilizes a converged HyperText Transfer Protocol (HTTP) and SIP container. It allows service providers to quickly offer new personalized and productivity enhancing services that subscribers demand. WebSphere Application Server 6.1.0.11 using Red Hat Linux and integrated in the IBM BladeCenter HT chassis, which is network equipment building systems (NEBS) compliant, has achieved an industry leading SIP performance measurement of 1296 calls per second, using a 13 message SIP call model (with 80 second hold time) which translates to over 4.6 million busy hour call attempts per blade. Using this call model, in a high availability, carrier-grade configuration, WebSphere Application Server achieved 660 calls per second per blade with session replication. These results were achieved while retaining extremely low end-to-end SIP message processing latency of under 50 milliseconds ninety five percent of the time. This exhibits the ability of WebSphere Application Server to handle the call volumes businesses demands while ensuring service quality."
What does this mean?
It means that our converged web container (supporting typical HTTP servlets, JSR 168 portlets, and now JSR 116 SIP Servlets) can perform SIP operations at carrier class speeds. We demonstrated this using an internally developed SIP call model benchmark. The benchmark is similar to benchmarks being used externally by other SIP platform vendors, but only IBM added high availability to the benchmarking scenario. IBM shows that we lead in performance where it counts – in enterprise ready high availability scenarios.
Based on my previous posts, you would assume we'd want to push SIP benchmarking to standardized benchmarking organizations so the measurements can be trusted by customers. Well, we are doing exactly that! IBM, along with other vendors, has formed a subcommittee at SPEC to develop an industry SIP benchmark. Erich Nahum (IBM) is chairing the group and has requested public feedback on the current proposal.
If you'd like to find out more about SIP, Erik Burckart has a two part article on SIP containing both an introduction to SIP as well as a guide to developing converged SIP applications.
Congrats again to my most excellent performance team members.
Update: Telephony Online coverage that includes comments on SIP performance.
Thursday, November 15, 2007
The wonders of modern hardware
http://video.google.com/videoplay?docid=5125780462773187994
Tim Francis
Tuesday, November 6, 2007
Rational Application Developer
The RAD 7.5 beta also provides support for the WebSphere EJB3 feature pack, the beta for which is available now for WebSphere 6.1. The RAD support for EJB 3.0 allows us to really exploit annotation based programming models. Previous versions of the spec focused on deployment descriptors, and the matching RAD releases had advanced editors to support that. In RAD 7.5, the focus is on Java developers, and using the Java editor as a base - but extending the already powerful Eclipse editor by adding significant new function and capability to support developing an annotation based application.
The intent is simple; most developers creating applications for WebSphere are quite comfortable using Java, and we have a great Java editor in RAD/eclipse - so it's a mistake to force them to switch to a whole new environment (with wizards and graphical editors) when they want to define some aspect of server interaction (such as Web Services or EJBs). This is a natural extension to what the spec defines, but the way we're supporting that pattern within RAD is new, easy to use, and productive.
The other aspect that I'm thrilled about is just the fact that we're running an open beta, less than a year after we shipped the last major version of RAD. We're not done yet, and we have more good ideas that we're still implementing - but the code is great quality, and the performance is good... and this shows a commitment to delivering a rock solid, robust, and well performing RAD. The intent is to encourage developers to explore the product, and not feel concerned that they'll get in trouble if they try something non-standard or off the golden path.
I'm really pleased with the progress the team has made on RAD 7.5; this is going to be the best version of RAD we've ever delivered, and the open beta gives you a chance to see where we're at, comment on what you see, and help us refine the product to make it exactly what you need. You can sign up for the beta here, and there will be newsgroups available to report problems, ask questions, and give us your feedback.
Tim Francis
Monday, November 5, 2007
InfoQ interview on IBM SPECjAppServer leadership and benchmarking in general
http://webspherecommunity.blogspot.com/2007/10/websphere-beats-bea-and-oracle.html
Here is the interview:
http://www.infoq.com/news/2007/11/ibm-specj
Feel free to post follow-up questions here or on the InfoQ forums.
InfoQ is an excellent news site for tracking important news in enterprise computing.
SPEC is a non-profit organization that establishes, maintains and endorses standardized benchmarks to measure the performance of the newest generation of high-performance computers. Its membership comprises leading computer hardware and software vendors, universities, and research organizations worldwide. For complete details on benchmark results and the Standard Performance Evaluation Corporation, please see www.spec.org/. Competitive claims reflect results published on www.spec.org as of October 03, 2007 when comparing SPECjAppServer2004 JOPS@Standard per CPU Core on all published results.
Thursday, October 4, 2007
WebSphere Beats BEA and Oracle Performance By Over 37%
"A powerful IT infrastructure is also required to support the growing number of transactions across the enterprise, as well as with customers, partners and suppliers. IBM recently beat competitors by 37 percent in an industry benchmark that measures high-volume transaction processing that are typical in today's customer environments. IBM WebSphere Application Server established record-breaking SPECjAppServer2004 benchmark performance and scalability results involved more than 15,500 concurrent clients and produced 1,197.51 SPECjAppServer2004 JOPS@Standard (jAppServer Operations Per Second), which translates into more than 4.3 million business transactions over the course of the benchmark's hour long runtime."
This shows our commitment to standard benchmarking organizations as I described in my last blog post. By leading this benchmark that was designed and approved by all participating SPEC vendors, IBM customers truly benefit from the demonstrated performance leadership.
We chose to lead in a category that matters most to our customers - per core performance. If you look at the result and the number of J2EE server cores and divide it out, we lead Oracle by 37% and smash BEA by 56% with approximately 300 JOPS/core. Comparing per core (CPU) normalized performance is really the best way to compare one application server and hardware stack to another. This demonstrates IBM's leadership of the industry in J2EE performance without question.
This result also shows the combined power of an IBM stack. Specifically, we achieved this by running WebSphere Application Server v6.1 on the IBM 5.0 JVM on AIX 5L V5.3 with an IBM POWER6 p570 server powered by two dual-core IBM® POWER6® 4.7 GHz processors against IBM DB2 Universal Database v9.1 running on a single POWER6-based server.
Congrats again to my team who yet again dominates where it matters - in customer focused standards based benchmarks.
SPEC is a non-profit organization that establishes, maintains and endorses standardized benchmarks to measure the performance of the newest generation of high-performance computers. Its membership comprises leading computer hardware and software vendors, universities, and research organizations worldwide. For complete details on benchmark results and the Standard Performance Evaluation Corporation, please see www.spec.org/. Competitive claims reflect results published on www.spec.org as of October 03, 2007 when comparing SPECjAppServer2004 JOPS@Standard per CPU Core on all published results.




