Monday, July 30, 2007

My new design pattern : skip step

SOA - Business Process Patterns:

Here is a pattern, that I never read about or came across. I would like to share with the programming world about "skip step" pattern. In this design pattern, one would write the application logic to use flags to skip certain steps in the use-case scenarios. Typically the need for "skip step" arises at each coarse-grained and down-stream dependent function-calls. In the skip-step pattern, one can store the flags as skip-flags outside the execution-environment. By changing these flags the application can be made to include/skip certain steps in the process flow. This design pattern has been extremely useful, in particular in EAI applications.

The advantages of "skip-step" pattern as occurs to me:

Assume a use-case that goes through a, b, and c steps. Here a, b and c steps interact with A, B and C external systems or database.

1) Skip a or b or c during the execution, if that step is not ready or not required anymore.
2) Step a is successful and step b failed. Next time you want to execute the same flow/order and want to skip a.

Saturday, July 21, 2007

SunRocket is history. What to do?

I use VOIP phone here in US and at also at my parents and in-laws houses abroad. I use Vonics. I heard that SunRocket is gone out of business. Glad that I am not a customer of that Company which I considered at the time of choosing VOIP service.

Friday, July 20, 2007

Back to Java. Having fun connecting to Tuxedo server with JNI.

It's been two years since I left mainstream Java programming. I have been working with IBM Interchange Server (a.ka Crossworlds) and more recently with Process Server. However, my new project is all about good old J2EE. After two weeks of JAD sessions, one month of design, and one month of detailed design, I have embarked on coding this simple web-services application along with few talented and motivated folks here and offshore. So far so good, except for the critically-ill item of the project - creating an instance of work flow in Bea Tuxedo from a WAS application server using Java-Native interface.

Getting JNI to work on AIX has been my sole agenda for last 3 days. Ofcourse, I am not talking about a HelloWorld example. May be a HelloWorld example would have saved me a day in the process.

Coming to the point here what I have learned:

1) System.loadLibrary("LirbaryWithoutExtension") will load the Library from java.library.path. And java.library.path is initialized by JVM with some lib and bin folders within JAVA_HOME and whatever directories are set in LIBPATH(AIX)/LD_LIBRARY_PATH(UNIX/Solaris) /PATH(Windows).

2) In WebSphere Application Server (WAS), Process Definition section is capable of exporting system variables, typically required by the native libraries (.so / .dll). And in the same section, we can define LIBPATH/LD_LIBRARY_PATH. In WSAD in the server settings /Environment, we can add java.library settings.

3) -Xj9 is used to enable fast-jvm instead of classic jvm.

4) -Xcheck:jni:nonfatal is used to avoid jvm-abort in the case of nonfatal errors during JNI.

5) JNI Verbose option in WebSphere Admin console has been useful to understand exact error messages while making JNI calls.

More later.

Sunday, July 8, 2007

Bye bye WGR614 V4 NetGear. Welcome Linksys WRT54GL.

Due to the problem mentioned below, I am giving up on WGR614 V4 Router that I have used since Apr 2004. The router doesn't seem to work properly with TimeWarner's RoadRunner broadband connection. The connection is getting reset frequently and the browser needs refresh every time it opens a new URL. If you guessed, I am not alone.

After reading reviews on my favorite places on the net, I decided to buy Linksys WRT54GL (L for compatible with Linux - which doesn't matter to me!). It got less rantings than WRT54G and other competitive models.

In addition to the chronic problem with connection stability and dhcp/browser-refresh issues, my voice is not clear on my Vonics voip home-phone to my friends and colleagues. I don't know if I have better options for broadband in this area. Will keep this updated as my fight for better internet and VOIP continues.

Itlu,
Rajesh

Thursday, July 5, 2007

Rep. Lofgren Issues Statement on Updated Visa Bulletin

Representative Zoe Lofgren (D-San Jose) today issued the following statement in response to the State Department’s update of the July Visa Bulletin and the subsequent rejection of applications for adjustment of status by the U.S. Citizenship and Immigration Services (USCIS).

read more | digg story

Tuesday, July 3, 2007

Who qualifies to be an architect?

I wonder what qualifies to be an architect in IT. I went through various links focused on defining an architect. There was a website that has even compared an IT architect head on with a traditional (construction) architect. Everyone seems to define architect as the all-important and greatest-ever resource for an IT department.

While I agree that architect works at the top-brass, defining the very essential characteristics of IT solution/product. In terms of complexity of job, leadership skills, soft skills and importance to an organization, an architect is no different than a project manager, sr. business analyst. In fact the role of architect is no more complicated than any other non-programming role in a IT setup.

There are many websites that define an architect role in couple of pages. Here are the ones I found worth reading.

Who can become a an architect from Sr. developer or Tech lead?
"The Awakening of a System Architect"
http://www.gaudisite.nl/MaturityPaper.pdf

What does a typical architect do?
"Things to Do in Denver When You're an Architect"
http://www.sei.cmu.edu/architecture/ThingsToDoInDenver.htm

"The elusive enterprise architect"
http://www.nccmembership.co.uk/pooled/articles/BF_WEBART/view.asp?Q=BF_WEBART_205593

"What's Wrong With The Zachman Framework?"
http://www.tdan.com/view-articles/5279/

To be continued...