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

author WebSphere Portal in Action

Anthony (Joey) Bernal is a member of the IBM Software Services for Lotus, Portal Technology Team. Working with WebSphere Portal since the initial release of version 1.1, he has an extensive background in all aspects of WebSphere Portal and has worked with dozens of portal projects. Joey is an accomplished author, speaker, and instructor in various topics concerning WebSphere Portal and related technologies. He is co-author of Programming Portlets, Programing Portlets 2nd ed., and the author of the upcoming book Application Architecture for Websphere.

The focus of this blog is WebSphere Portal. It includes best practices and common issues with architecture, design, programming, installation and configuration, and on-going operations within a portal environment. Althought I expect it might wander a bit...



Sunday March 23, 2008

JSR 286 Class Diagram

Here is something that portlet developers might find interesting. I was working on a portion of my new book, Application Architecture for Websphere, and came up with this interesting class diagram showing the next version 2.0 of the Java Portlet API. It is the complete API mapped out poster size to show options and relationships.



This image is availble for download on my website, www.bernal.net. My only request is that if you download it and find it useful, please take a minute and fill out my survey on development frameworks. It should only take less then a minute.
enjoy. hmmm, it is the first story on the home page. Here is a link direct to the article. You have to create an account to make the downloads available.


Mar 23 2008, 01:33:59 AM EDT Permalink



Thursday December 20, 2007

Is true layer separation possible with Spring?

I've been struggling with this for awhile now and especially since working on my new book. For the persistence chapter I am putting together a couple of examples, one using Ibatis and Spring DAO's within a simple web application, another using Ibatis again with a custom DAO layer, and a third more robust example using JPA. I was considering using Spring also in the second example but have run into trouble trying to build a generic service layer that is accessible from other applications within the JVM. This is especially important in a portal environment where every portlet is a separate application.

This seems to be a major issue with using Spring, is that I can't create a truly separate layer that's implementation approach is hidden from the layer above. Even if that were not the case is would be trouble trying to share the same Spring context across multiple applications. I would end up with multiple copies of my objects, one for each application. I have found some work arounds for web apps within the same enterprise application, but I'm not sure I like the solution, and it's not truly global.

The truth is I want my business logic, or presentation layer to not even know I'm using Spring in the lower layers. I would end up wrapping things in a singleton anyway. For complex applications where I wanted to use dependency injection and other features this would probably be ok, but I might just design my app to be Spring free knowing I'll end up there anyway.

Don't get me wrong, I like the concept of Spring and am a big fan. I'm just looking for cleaner solutions for my architectures. I'd be interested in any thoughts or work around that people have found. I know that many portal customers are looking at using Spring, but am not sure that many have through it through to this level?

Thanks!


Dec 20 2007, 11:11:17 AM EST Permalink



Friday December 14, 2007

With great power comes great responsiblity

I have a new comment lines article that was published this week in the WebSphere Developer Technical Journal. Comment lines is a guest column in the journal that allows active leaders an open forum to contribute topics that they think are important. This current article is more editorial then my usual work and discusses some of the efforts and trends around Websphere Portal. It also touches on customer responsibility for managing large portal enviroments. Shared enviroments won't work without rules. To quote,

"Basically, things that are shared require that everyone who uses them gets along and plays nicely. Convincing organizations that this is a good idea seems to be a constant struggle. We are all bounded by the daily responsibilities of our jobs and the goal of getting projects finished, but it is everyone's responsibility to promote the idea that rules are a good thing. Rules help to promote cooperation, prevent mishaps and misunderstandings, enhance accountability, and enable recovery. That is, assuming we get things right in the first place..."

Take a look and see if you agree with my comments.

Enjoy!


Dec 14 2007, 01:09:12 PM EST Permalink



Thursday December 06, 2007

What language do you use?

I've been messing around with Drupal lately which I use on my personal site at Bernal.Net. We used this site to host the sample code from the 2nd edition of our programming portlets book. Mostly because we didn't know where else to put it. I have had lots of trouble with spammers on this site and have been working on ways to keep the site open, but not get a bunch of nasty links in all the comment fields. I think I have it figured out mostly so we'll see.

One thing I have been learning is how nice it is to plug in modules into Drupal. The procedure is pretty easy, extract and activate, and the module is ready to go. It is sometimes a bit of a challange to figure out the module after that, but hey, I'm not complaining. - OK, maybe a little. ; )

This got me thinking about plugability of portlets a little bit. I have been hearing a lot about using SpringMVC as portlets lately, especially with development on the Spring Portlet MVC option. On initial glance I am a little hesitant on this for many of our customers. Since people take me at my word when I recommend options, I would not want to lead them down a dark path, if there were issues with taking an unsupported approach. The general goal is to make the portal open to all types of portlets including things like Adobe Flex2 and SpringMVC. And I like to help guide customers in making their own decisions about frameworks, languages, etc., but from a consulting perspective I can only keep up with so many options, and if there are problems then support is going to have more trouble then if you were using JSF, the Portlet Factory, or even the plain old Java Portlet API (JSR 168). Just my 2 cents on this today, and even that is subject to change, as I know a lot of smart people are working on this approach. I think Spring fits a nice role in portal development as a local service layer, but it is also interesting what Spring is becoming. How a nice IoC framework is growing into an all encompassing giant is confusing.

What I really wanted to mention was that I setup a New Poll on my site, titled, "What language do you use to develop portlets?" I'm very interested hearing what folks use, so please if you get a few minutes go to the site and choose your poison. And I'm sure we are all curious what choices others have made for their development options. I've listed all the main options, but if your language is not there, then leave me a comment. I could add another option, like Spring Portlet MVC if we think it is necessary.


Dec 06 2007, 09:03:58 PM EST Permalink



Friday November 16, 2007

New Book in the Works

I just finished up the contract for a new book by IBM Press called "Application Architecture for WebSphere". Not sure if we will stick with this title, but you get the point. The focus is going to be on providing enterprise and application architects with a detailed guidebook for making framework and design decisions for their WebSphere applications, including WebSphere Portal. I hope to provide simple, common sense recommendations for designing and adhering to a layered architecture approach for WebSphere applications.

In my work I see lots of organizations and project teams that struggle with defining a proper architecture for their project, and then they continue to have problems as these architect and framework decisions are changed, or ignored altogether during a project. In many cases this results in a chaotic situation, where applications collide, or don’t work correctly at all. For portal this is especially important where multiple teams are working within a shared environment, some of these decisions are even more important to avoid application collisions within the production environment.

In addition to providing hands-on architects with decisions guidance and examples which can be used in defining their own architecture, this book will provide less technical decision makers, such as project managers, sponsors, and executives, why application architecture, development standards, architectural decisions and governance are so important.

Of couse this means blog postings are going to be scarce over the next few months as I focus on this other work. If any IBM'ers are interested in taking over some of the blog or offering their own posting send me a note and we'll talk.


Nov 16 2007, 07:42:12 PM EST Permalink



Monday November 12, 2007

Spammers Win!

Spammers are killing me on this site so I had to turn off comments. I just can't keep up with all the obscene comments and filter them out. - sorry - : )


Nov 12 2007, 06:44:52 PM EST Permalink



Saturday October 27, 2007

Consider The Sphere Journal

I hosted a call this week with the editors of The Sphere Journal and members of my team, IBM Software Services for Lotus (probably better known as Portal Lab Services). I sometimes think of The Sphere as this small underground journal, but it has quietly been building up a wealth of articles and content that cannot be ignored. Looking through the list of articles on line, I found at least a dozen that would be of interested to me in different aspects of projects I'm currently working on.

The key to The Sphere is that there are no advertisements. They make money off of the subscription costs, so it cost more then some of the other trade magazines. The upside is that it is all hardcore content, no fluff, no marketing! I actually don't have a subscription myself, but I get a copy every once in a while from different sources. Hopefully you can convince your company that a subscription is worth the added productivity. If not, it is probably worth buying it yourself. I'm actually thinking about buying a subscription myself and trying to deduct it from my taxes as a work related expense. I'm actually not sure if I can do that, so I'll have to check that out. Either way, in my line of work it's probably worth it to have another library of proven and complete solutions available to help solve customer problems.

The editors Celeste Frey and Lauren Bonneau are always actively seeking the best content for their subscribers. Looking at the payment structure for published articles, I can tell any potential authors that is it one of the best I have seen in the industry. If you have some WebSphere or WebSphere Portal expertise you might consider contacting them about an article idea.

Anyway, check it out and let me know if you subscribe, some of your favorite articles, and how you have benefited from some of the content?

Enjoy!


Oct 27 2007, 11:09:02 AM EDT Permalink



Saturday October 20, 2007

Hiding Pages in Portal Navigation

Interestingly enough I have been working with themes lately. I thought those days were over for me, but as always everything goes in cycles. I like getting and keeping my hands dirty, as I think do most technologist, but as always it's hard to do people place more demands on your time. Themes have changes quite a bit in version 6 and I have to admit I had not been keeping up with all the latest improvements. Things like theme policies and the continued separation of different aspects of the theme which allow for more customization and flexibility. It was actually two separate projects back to back that asked for some theme customization. The first one asked the simple question. "How do I hide pages in a theme?"

Initially I thought about just putting the pages in a separate location within the page hierarchy and then calling them when necessary. But an interesting twist to the use case was to have the breadcrumbs continue to follow the same page hierarchy as before the hidden page was displayed. This put an interesting twist to the situation, because you wanted the page to be located along side you’re calling pages, but not displayed within the main navigation. Thinking about what we had done in the past and what options I knew were available in the portal, I narrowed it down to three options.

1. Explicit Naming: Hiding pages explicitly in the theme by filtering out the page name. In previous projects what we have done is use a prefix on any page we wanted to hide. For example naming a page as HIDDEN_MyPage1, and then any pages that start with HIDDEN_ will not be displayed. It's a low tech, simple, approach that has worked quite well on projects in the past.

2. Rule Mapping: I also looked at rule mapping on the page. This is a powerful way to remove and add pages to your portal based on any number of rules you can determine. You can base it on the date, user attributes, heck, even phases of the moon if you could get the right data.



The main problem in this situation is that if a page is out of scope according to the rule that you put in place, then it's totally gone. No calling it directly within your code, which is what you really wanted. This solution is then very useful if you do want these pages to show up in the navigation menus when they are not hidden, and disappear completely when they are.

3. Page Parameters: The final option I looked at was using page parameters. I really liked this approach because it was similar to the first approach of using a page name prefix, but allowed you to turn pages on and off in the menu and still have the option of calling them directly if necessary though code. It's not a big deal though if you decided to use option one.


according to convention my parameter probably should have been, com.myco.page.Hidden, with an uppercase H.

Filtering out these pages can be an exercise, but once you get the hang of it it's not that bad. It really depends upon where you are in the theme as to the approach you take. I was able to filter these pages out of the sideNav.jspf file by using the following code snipped.

//start my code

boolean isHidden = false;
	  
com.ibm.portal.MetaData iMetaData=((com.ibm.portal.MetaDataProvider) wpsNavNode).getMetaData();
Object hiddenValue=iMetaData.getValue("com.myco.page.Hidden");
  
if(hiddenValue != null) {
   if(hiddenValue.toString().equalsIgnoreCase("true")) {    		
      isHidden = true;	  
   }
} 
	   
//end my code


Of course once I had the value of isHidden set to true or false, I had to use that value later in the file to actually filter out the different menu items. You'll have to play with it a bit depending upon your custom theme. There are some other examples actually in the default theme that uses this technique in different places, so definitely take a look for them.

enjoy.


Oct 20 2007, 11:12:18 AM EDT Permalink



Wednesday October 10, 2007

Multi-Tenancy Portals

I had a great conversation with Marshall Lamb yesterday about some work that he has been doing in the multi-tenancy portal space. This is really a fancy word for virtual portals, although it doesn't have to be implemented specifically using virtual portals. The approach is around providing Software as a Service (SaaS), but I think the potential goes much, much, farther. As he was walking me through the demo, I was thinking of several areas where this would apply to other end user scenarios, such as building user communities on the fly.

This takes virtual portals to the next level, really allowing for separation not only at the page and administration level, but also with separate content libraries, separation of user repositories using realms, and the option to provision external applications to provide separate functionality for each unique site. The approach is actually pretty light weight with extension points that allow it to be customized for the specific type of site you are trying to deliver. Site templates can be created and then parameterized which allow users to fill out an on-line form and have their site up and running with minutes (or maybe hours) depending upon the complexity of the site setup process.

I'm always concerned about making changes directly in production environments without strict control over what is going on. For enterprise customers who depend upon their portal this is an absolute requirement. This requirement sometimes conflicts with the marketing messages around WebSphere Portal that promotes the ease of administration through our admin console. Truly there is a place for both of these extremes, but what I like about the self-service portal is that end users or site administrators get the ability to create and modify their site, but only within the limits set by the templates created by the portal admin and developers.

The feature is built as a simple portlet. The portlet itself is pretty light weight, basically offering a set of options to the user to define their site. After choosing their specific site options, this information is passed to an asynchronous task that then goes about the process of building the virtual portal, copying libraries, and provisioning any external applications that need to be provided. This process is completely extendable so that it can be customized for your organization or set of users. I dug into this line of questioning fairly deep to be sure there were no hidden limitations that would hinder a customer trying to create complex sites. As always there are probably going to be limitations on the portal itself in the use of different APIs as administration come up with complex requirements, but overall it looks like a good start.

Marshall, hopes to provide the initial version of this portlet and documentation via the portlet catalog later this year, but there is a dependency on an update in WCM that may hold up his ability to make it available.

I found this article in developerWorks on building Secure multi-tenancy with WebSphere Portal Server. I think this is separate from what Marshall works, but I think the extensibility is there to even include this approach with for environments with Tivoli security products.

All things considered this may be one of the most interesting things I have learned this week, especially considering the possibility of a release in the near future. I'm hoping to provide some screen shots as it get's closer to release in order to explain things a little better.


Oct 10 2007, 10:52:06 AM EDT Permalink



Tuesday October 09, 2007

Wheel of Shame!

The Sphere Journal has a booth in the expo area that is often present at these conferences. Center stage on the table was a wheel, similar to the wheel of fortune, with different prizes in various slots. One of the prizes was a chance to win a GPS unit. I'm not sure if there were one or two slots with this prize but the odds were definitely high AGAINST landing on this prize. Innocently enough I asked the representative, Sarah, if I could spin the wheel?

Surprisingly I landed on the GPS prize slot. I started to dig out my business card to enter the contest when Sarah told me she would not let me win. I was pretty disappointed, so they tried to by me off with a candy bar. At first I was going to refuse on principle, but after last night’s episode with the mini bar I figured it was better then nothing (or hundred year old chocolate).

OK, since I teased them a bit, I'll put in a plug. The Sphere is actually a great journal. In depth with lots of detail and no fluff articles. More importantly no advertisements, only technical information that can help you do your job. The sister journal, The View, has a focus on Notes and Domino has been popular for years. The Sphere is relatively new with a WebSphere focus, but all of the articles I have read has been really good material.

I've authored an article for The Sphere, which is why Sarah told me I couldn't win the prize. She thought people would think the drawing was rigged… go figure. I need to work on some more articles for them, but little things like books, keep getting in the way.

For all the people that Sarah did let enter, good luck on the drawing tomorrow. I hope you enjoy my prize!

UPDATE 10/10/07: Sarah, who was looking lovely today in the expo center, is actually the publisher of The Sphere. She took my kidding exactly as I intended it. Plus, I got another candy bar!


Oct 09 2007, 10:17:29 PM EDT Permalink


Tuesday October 09, 2007

Under the Hot Lights!

Richard and I gave our presentation after lunch, “Best Practice for a Successful Portal Implementation”. This talk has been around for years, but we recently updated it to incorporate some new info. I actually noticed a few outdated bullets still that we need to clean up. The room was pretty full. Not standing room only like some of the others, but pretty respectable. I did get asked a question in my part of the talk that I couldn't answer very well. Talk about choking. I was talking about code reviews and how important this is to building a robust portal. The question from someone in the room was, "how do you code review portlet factory portlets?" Ummmmm. I had to admit that I was stumped.

Later in the afternoon I ran into Jonathan Booth, who was the chief engineer at Bowstreet, and is now the chief engineer for WebSphere Portlet Factory. We talked about it a little bit and he had seen code reviews on factory models. Basically teams opening up the model and walking through to discuss why specific builders were chosen, understanding architecture decisions, such as using service models, and of course adherence to team standards and conventions. This was good info and I'm going to have to start collecting these best practices to list out the next time I get that question.

Richard says I need to cut out half of my slides, since I couldn't finish them during my half of the talk. : (

Actually, that is pretty par for the course for me. : )

Richard of course was right on schedule during the first half, almost as if he had rehearsed?


Oct 09 2007, 08:43:46 PM EDT Permalink


Tuesday October 09, 2007

Lunch is Served

I sat at the performance table today. I did look over and see the governance table empty again. Just kidding I didn't really look. The performance table wasn't really as hopping as I thought it would be. There was one customer who had some questions about their environment. The problem was with LDAP failover and when they tested the failover process the portal seemed to take a long time authenticating users. I asked the usual questions. Have they tested the LDAP separately to be sure it is not a portal problem? No luck, as they had other apps that worked fine on the same environment. Did they have portal configured to reuse LDAP connections? Nope, turned that off.

I was out almost out of answers until she mentioned they were using Active Directory. Then I mentioned the mysterious "Field Engineering 15". This is my favorite trick for AD, not really documented anywhere unless you know what you are looking for. Do a search on "15 Field Engineering on Active Directory" and you should come up with some examples. I think really it might be called diagnostic logging and 15 is just the level of logging that you want. Basically, you can set a registry value and it will allow AD to output long running queries and the details around them. I've used this a few times to determine if the scope of a query was not correct or if there was some problem with the search string.

Thinking about it a little bit, we can use wireshark to do the same kind of thing. Wireshark is a network protocol analyzer and will allow you to view the .cap file and see the query that is taking place. I think I like the AD logging approach because it will probably give you more info about what is going on within the LDAP directly.

Lunch was sandwiches and cold salads. Standard conference fare.


Oct 09 2007, 08:31:22 PM EDT Permalink


Tuesday October 09, 2007

Day Two

7:00 A.M comes too early after a late night of discussion with colleagues, but I dragged myself out of bed this morning to have breakfast with members of my team. OK, it wasn't that late, but I'm not really a morning person. Richard G, who I mentioned yesterday, Tony Higham, Ken Polleck (my boss), Ken Krause, and some other folks, met with our executives for a morning discussion. All of these folks are considered experts in various portal topics, so it is always interesting in these discussions when we talk about strategy. Many times we agree to disagree, but I always come away having learned something from our interaction. To me that is one of the best reasons I enjoy my job, coming up with ideas, being challenged, and challenging others to continue to grow and improve our skills, which allows us to better help our customers.

Ken Polleck, mentioned an issue he discovered with a customers public portal site. As he described the problem, I realized that I had the solution outlined in a presentation I had given at the Portal Technical Conference a few years ago. How's that for collaboration? The problem was directing users to different pages on the portal, and can be solved by using rewrite rules within the IBM HTTP Server. This is really an Apache module, and happens to be one of my favorite tricks for various URL issues. I'm sure jw@IBM will enjoy the fact that I was able to mention rewrite rules again. :)

My first session this morning was given by Mustansir Banatwala, a Lotus Quickr Architect. The presentation was Lotus Quickr Overview, Architecture and Roadmap. OK, this was another 101 type of session, but I actually needed to learn the basics on this one. Lotus Quickr is IBM's new Web 2.0 collaboration product, enabling teams as well as larger communities to collaborate efficiently around documents, content, and places.

For me the interesting part of Quickr is the availability of content and document sharing, through wiki's, blog's, and document repositories. Making it easy to use these shared spaces and actually making it harder, not to use the collaboration tools is one of the key concepts of Quickr. I think this will help keep documents out of email, and off of local c drives and put them in a place where they can be shared and reused. The key for me is performance. Teamspaces, Lotus Notes databases, whatever, if it's slow, then it is unusable, and I am unlikely to return. Mostly I would like to believe that performance of OOB type applications like Quickr is a direct result of the investment in underlying infrastructure, with server capacity and network bandwidth being at a premium.

The Connectors aspect of Quickr looks very compelling. The ability to access or update content within other applications or from within Windows Explorer sounds like it will make collaboration much easier. The part I don't like about this type of collaboration is people finder, or expert location. This is where you can see if document authors or subject matter experts are on-line and available for a Sametime discussion. Not that I don't want to be found, but since you want to help people, sometimes it get's to be a little overwhelming


Oct 09 2007, 10:36:31 AM EDT Permalink



Monday October 08, 2007

End of the First Day

So far I seem to be hitting sessions of the 101 variety. Obviously I am not the target audience for this event, but I think even some of the customers I have talked to would like a little more depth in some of the presentations. Maybe I'm just going to the wrong sessions, since I basically have a 1 out of 6 chance to pick the right one for every round of sessions. I shouldn't complain too loudly since my presentation tomorrow with Richard, "Best Practices for a Successful WebSphere Portal Implementation", is beginner level also. : ) Don’t get me wrong, these sessions are all very good, but I’m a victim of my own experience. The reality is that the presentation material generated for this type of event is what people use in the field to continue learning about new products or enhancements.

I sat in on the Portlet Factory BOF this evening with two additional colleagues Ying and Michelle, where we saw some of the new features that will be coming into future releases of the product. I think I have mentioned before that if new features are too far off then I'm not that interested, since customers want do stuff NOW! Overall it was pretty good and I was excited to see some discussion about the upcoming Process Integration Builders. These builders will integrate with IBM WebSphere Process Server and allow easier Human Task Management within the portal.

Of real interest is the new WebSphere Portlet Factory wiki that is now available on developerWorks. The set of samples that is included with this initial launch looks impressive. For a WPF novice such as me, this will be a big help in learning more about the tool. I am slowly becoming a convert of WPF. I still have to keep my head above water with JSF and other development technologies but for those folks that can afford to specialize, WPF definitely has some advantages.

As I write this, I got some chocolate from the minibar. I took one bite and realized it was about a hundred years old... I can't believe I have to pay for that...

maybe I'll head for the bar?


Oct 08 2007, 08:38:00 PM EDT Permalink


Monday October 08, 2007

Monday Afternoon Update - Topic Tables and BOF's

It's actually surprising to me how many questions are getting answered for customers and fellow portal practitioners. I guess that is the point of this type of event, but folks come armed with questions and issues and are ready for in-depth discussion. Hey, where else can you get a free hour or two from one of Portals key architects, or someone with years of field experience? It is only the first day, but you got to start early to be sure you get the information you need. Several people have asked me questions that I wasn't readily able to answer, but as fate would have it, the right person was within a few steps. A quick introduction to explain the situation and I'm moving on to the next conversation.

One of the interesting features of this conference is the topic tables that are setup during lunch. It's an additional twist to the 'birds of a feather' that are so common at these types of conferences. I've always felt that one evening of BOF sessions was not enough, so luckily here they have setup two days dedicated to BOF sessions in the evening. This is in addition to the lunchtime topic tables. I sat at the "Portal Governance" table at lunch today with my colleague Richard Gornitsky. Richard is co-author of the book Mastering IBM WebSphere Portal and a veteran of large portal projects. We didn't talk much about governance; I guess people couldn't find our table. : ) Rumor has it that the performance table was hopping, so I think I'm going to hang out there for lunch tomorrow.

Stefan Liesche's talk on Portal 6 Operational Architectures and Procedures this afternoon was also apparently a sell out. I was on my way there when I was told it was standing room only, except fire codes wouldn't allow anymore standers in the room. Only slightly disappointing since I would prefer a customer get the seat I would have taken. But maybe next time I won't spend as much time talking in the hall between classes.

Categories : [   Conference  ]

Oct 08 2007, 05:25:45 PM EDT Permalink

Previous month
  April 2008
Next month
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27282930   
       
Today

RSS for

RSS for

Favorites

Categories
Conference (1)
Development (1)
General (1)
Performance (1)
Portal (2)
Standards (1)
advanced (3)
best practice (8)
design (12)
development (6)
performance (5)
planning (9)
portal (4)
portlet api (4)
testing (4)

Recent Entries
JSR 286 Class Diagram
Is true layer separation possibl...
With great power comes great res...
What language do you use?
New Book in the Works
Spammers Win!
Consider The Sphere Journal
Hiding Pages in Portal Navigatio...
Multi-Tenancy Portals
Wheel of Shame!
Under the Hot Lights!
Lunch is Served
Day Two
End of the First Day
Monday Afternoon Update - Topic ...

Blogs I read
Chrifu.
InsideLotus weblog
portlets.blogspot.com

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