Apr 202013
 

The new HttpClient provides a fluent interface that is quite intuitive. However, any non-trivial implementation soon starts to miss the flexibility of configuring the connection manager. As a pre-configured HttpClient can be passed into the fluent Executor each time, it is overhead to configure it each time.

posted at http://java.dzone.com/tips/fluency-and-control-httpclient

Jul 292012
 

ibm-sce

by Akber Choudhry – http://www.akber.com/

Last year, there was an opportunity to participate in IBM’s Cloud Beta and I wrote about some initial impressions.

IBM have now rolled this out with geographically dispersed data centres.  Even with some terms being unique to IBM, the provisioning of instances and management of images should be familiar to those who have worked with Amazon’s EC2 and related cloud services.

This gives ‘true Blue’ customers an option to entrust sensitive systems to a cloud provider with whom there is an existing relationship.  It will be interesting to see how this offering from IBM stacks up against managed services from IBM.

 

 

The App is King

 Posted by at 2:41 pm  server
Oct 272011
 

by Akber Choudhry – http://www.akber.com/

Networks, storage, and all other information technology infrastructure are fairly complicated things and it takes substantial planning and flawless execution to get it right.

Project managers and analysts do great work to ensure that what runs on these infrastructure systems is properly specified and delivered on time.

And with all this hard work, and whether data is delivered over 4G mobile or 10G ethernet, all that users see is the App.  Nothing matters if the app is not there when the user wants it, and how the user wants it.

The App is King.

Oct 162011
 

by Akber Choudhry – http://www.akber.com/

Finally, finally, finally!  Some long-needed innovation from IBM, and something other than share buybacks that may boost the long-term viability of IBM software.

Whether it is the pressure from Oracle or open-source innovation, or a long-overdue grounds-up overhaul of the WebSphere application server architecture that has been stagnant since version 5.0 — it is looking good.  A start-up time of 5 seconds, grounds-up OSGI with optional features, drop-in deployments and no installer with a zip file of under 50MB.  No installer!  At least in the alpha version that we had a chance to preview today.
There is still a lot to be done with the version numbering.  What is this thing about releasing major technology refreshes on a minor version number?  8.0 was really 7.0+  and 6.1 was a step up from 6.0.  The desire to have a common version number across the WebSphere family really did not go anywhere.  We have Lotus Quickr 8.1 on WebSphere 6.0 and Portal 7.0 on WebSphere 6.1 and the list goes on.  Sometimes, a version refresh of WebSphere was that — a version refresh.  And don’t get me started on the dubious software strategy of the same product on two completely different technology platforms — the infamous Quickr — the less said about the Portal version the better.
1998-2004 was a period of great innovation in IBM software, and it has pretty much been stagnant since then. Sometimes it appears that the a flock of MBA-types swooped in and milked the software and all its permutations and all kinds of incremental functionality packaged and marketed as ‘servers’.  There was little innovation in the past five years — so little that even die-hard IBM fans were looking elsewhere to fulfil their Web application needs.
On another note, the HTML-only Sametime client was also a long time coming, but it is a welcome presence now that it is here.  How could IBM have missed the use cases for extranet communication and click-to-chat customer service?
Enough criticism.  Keep up the good work, Big Blue.
May 202010
 

by Akber Choudhry – http://www.akber.com/

IBM is beta-testing its own cloud at https://www-180.ibm.com/cloud/enterprise/beta/dashboard, after a successful experiment with Amazon EC2. As a company with hardware and operating system roots, it was smart to get on to the cloud bandwagon, which is essentially the commoditization of hardware and operating systems.

A plain Suse instance was not a problem. However, after some initial trouble launching a WebSphere Portal/WCM instance in the wrong-sized machine, I was able to launch an instance in a ‘small’ machine. I only tried it once, but a WebSphere sMash instance did not launch. My first impression is good — for a beta-testing environment, and quick proofs of concept, it is very handy.

If you know Amazon EC2, the management console should be pretty much intuitive. The only time I had to read the good online help was when I needed to know the exact user to be used for the SSH session into an instance.

Let us wait and see how IBM manages to position this offering once it is out of beta.

May 022010
 

by Akber Choudhry

Quick Post:  Just tried this today and it worked:

Travel and meeting sites can give you a link that can add an entry to your Google Calendar, among ICAL and other links thare are also provided.  This is very handy, as it takes care of time zones etc. and works out quite well.  The link is usually of the type:

http://www.google.com/calendar/event?action=TEMPLATE&text=. . . . .

If you are on your company’s Google Apps hosted calendar, this link would not work and it would ask you to log in to a regular google account, not a Google Apps for Business calendar.  If you copy the link location and add after ‘calendar/’:

http://www.google.com/calendar/hosted/xxxx.com/event?action=TEMPLATE&text=. . . . .

where ‘xxxx.com’ is your Google Apps domain, it works like a charm. Kudos to Google URL architecture and those that enforce it.

Mar 222010
 

by Akber Choudhry

IBM WebSphere Commerce 7.0 comes with a substantial set of marketing activities: Web activities, e-mail activities and Dialog Activities.  In summary, Web and e-mail activities push content along, while dialog activities respond to specific shopper behaviour.  Now, we may also want to push content based on some analysis of past shopper behaviour, whether specific to that shopper, or in general.  Combine the two with some custom enhancements that put together some logic and data storage and you may have a specialised recommendation engine for your specific business needs.

Feb 222010
 

3gby Akber Choudhry

If the first generation of eCommerce was the shopping cart, and the second wave was enabling all sales channels in addition to on-line sales, then we are now beginning a new trend: the creation of an ecosystem around offered products and services.

While the term ‘social commerce’ is still being refined, it is becoming apparent that with a wide portfolio of products there is a need to facilitate the interaction of communities — vendors, customers, and even random visitors — with your web presence.  It has long been realised that knowledge within a company needs to be unlocked and made accessible to all its employees.  The current challenge is that the same knowledge, if marshalled in the right way, can enable internal and external communities to use it, build upon it and add to it, thereby positioning your products in the proper context in the right ecosystem.

Doing so in a cost-effective manner and with tangible results remains the challenge.

Nov 072009
 

by Akber Choudhry

I took IBM WebSphere Commerce 7.0 for a spin over the past couple of days.  First impressions:

  • generally, it had to keep up with the overall WebSphere versioning scheme, but in reality it is more like 6.5 than 7.0 (or maybe even 5.8 if one believes that 6.0 should have been 5.7).  It pulls together all the 6.0 feature packs and provides new incremental features, primarily social commerce and targeted marketing tools.
  • technology updates, including a long-overdue database abstraction layer and running on WAS 7.0 – but still short of what is state-of-the-art in the JEE world.  The ORM layer is still too dependent on underlying primary keys system.
  • dev environment works better, even with a publishing failure during installation, and it is more self-contained with XML and properties within the EAR
  • although we have not done any integrations yet, my opinion is that integration with other systems and back-ends should become easier and more standards-compliant

To be fair to IBM, they have done a good job, and not tinkered much with the market leader, but maybe they should start working on the next major release with a grounds-up re-design:

  • with Hibernate-style ORM and inversion-of-control architecture with configuration and interface specification through annotations and much less configuration.  This will also simplify data load and reporting.
  • a built-in portlet container (without the overhead of a full-blown Portal Server) and portlet-based tools replacing the who-knows-what-based admin, org and acc consoles, the OpenLaszlo-based Management centre and the Eclipse-based Sales Centre.  UI consolidation is way over-due.
  • a JSR299 (web beans) based framework with annotation-based security hooks that should get rid of all that ugly Struts-database command integration.

Well, we can dream, can’t we?

Oct 112009
 

by Akber Choudhry

Caching provides persistent business data  and volatile session data from memory instead of from database and/or disk access.  This improves performance.  Clusters of application servers also provide performance and scalability.  The two techniques clash as one application server’s cache is not in sync with others’ caches.

A solution for this clash is through Network-Attached Memory (NAM), which is very similar in role to a SAN (Storage Area Network) that is used for shared disk access.  External memory (spread over one or more cache servers) is made available to each application server, who think of it as their own memory.  Resources are not wasted and each application server’s view of cached content is identical – as it is in fact the same data in memory that is visible to all.

Read-only, Write-through and Write-behind


Just as a SAN provides continuous service even when individual disks or arrays crash, NAM should provide this shared memory even when one of the NAM servers crashes or is taken out of service.  This is distributed caching, or a data grid.  Generally, these are read-only, with write-through (writes pass through directly to disk or DB, updating the cache), and rarely, they may be write-behind: accept data commits from applications and ‘write-behind’ so that the application finishes its commit or update, oblivious to whether the data may not have been written to disk or database yet, and the grid will write it out when it deems appropriate.

Short-listing Products

Common products out there are Terracotta, Gigaspaces, JBoss Infinispan and Oracle Coherence

Working on a real-life high-performance portal, I came up with these requirements to create a short-list:

  1. Capability to cache database record objects, service invocation return objects, sessions and session objects.  Objects include object graphs.
  2. Transparent to applications, portal and any framework.  The portal platform should be able to function completely WITHOUT the distributed cache, and with little configuration changes if required.
  3. Should have no startup latency – cache warming should be accomplished using other techniques.
  4. Should be always available.  Failover of nodes providing the distributed cache, and their load-balancing, should be automatic.
  5. Should require NO code or configuration changes when new portal applications or web services are added.