Sunday, December 23, 2007

WebServices and J2EE

I am _struggling_ to understand why NOT J2EE define a new container or at least a componenty-by-itself for 'web services'. When they have 'Servlet' and a sibling called 'JSP', 'EJB' (and a variety of them), 'Web Page' etc., - why couldn't they define a simple 'Web Service'. Lets face it.

Now I have to choose between a simple Java class vs EJB as my 'Web Service' implementation. Isn't?

And why should people use the term "SOAP over JMS"? Some how this doesn't sound like 'platform neutral' as in "SOAP over http". Check this one out for another opinion from other gurus -

http://www.subbu.org/weblogs/main/2005/03/soap_over_jms.html

http://dev2dev.bea.com/blog/pdone/archive/2007/03/using_soap_over.html






Friday, December 7, 2007

My original jokes...

Divorce rates are high coz people are used to "return policy".

"The race is not about race or sex". - a thought on Democratic Campaign 2008.

American Idol is a huge success and Indian Idol is too. Chinese Idol wouldn't work because people can't vote in China.

Thursday, November 29, 2007

SOA Best Practices.

Use urn: for declaring name spaces instead of http: I understand the use of usage of http for XSDs that are published online. But the usage of http for every schema definition is not required.

Usage of 'http' in XML documents is not elegant.

Wednesday, November 21, 2007

Laptop for Java/.Net Studio Programmers/Architects

Update - I canceled my Dell order. Couldn't get hold of right-person easily even after being on the phone for more than 30 min. Waiting on phone for customer support is the last thing I want to do in life.

After plenty of wasted hours on comparisons and reviews I have made a U-Turn from opting the fabulous Lenovo Thinkpad T61 and ordered Dell Vostro 1400.

I got the following configuration for $1550 including taxes and shipping.

OS - Vist Business. I was rooting for XP but was advised by my brother-in-law to go for Visa.
Processor - Core 2 Duo 2.0 GHz with 2MB L2 cache
RAM - 3 GB. I need as much RAM as possible for memory-hungry IBM software.
Harddisk - 160 GB 5400 RPM.
Monitor - 14.1" . I have ordered with TrueLife. After what I read about it, I am going to change it to Matty while my order is still "in production". Also 14.1" has been my personal choice while shopping for laptops.

In the same price, I got integrated webcam, dedicated graphics card (i.e, discrete graphics) and 3-year warranty with accidental protection (i.e, complete care).

All in all, if you are budget-minded like I am and are willing to take 'risk' and don't have brand-image-consciousness then go for Dell. If you typically see yourself buy the premium-brands like BMW/Honda cars, Sony cameras, Bose headphones.... then Thinkpad may well be your choice.

Thinkpad is sleek, has great keyboard and proud history. However it doesn't come with s-video and has a weird placement of cntrl key (next to fn key). I can live with the higher-cost if they provide better customer support. I found that the order-processing is very slow with Lenovo. I hope everything else with Lenovo customer support is better.

Sunday, November 18, 2007

Theory of Relativity

The closest I can understand...
http://www.onestick.com/relativity/

Friday, November 16, 2007

Log4j in J2EE Container.

http://www.webagesolutions.com/knowledgebase/waskb/waskb004/index.html

Initializing Log4J has been a thorny problem for a J2EE application. There are two ways to initialize Log4J:

First - Call PropertyConfigurator.configure(String propertyFileName) - This function takes the full path name of the properies file that contains Log4J configuration information. A J2EE application should not make any assumption about where its files are located in the file system.
Use of this function requires the application to know exactly that.

Second - Do not call PropertyConfigurator.configure() and let Log4J look for a properties file called log4j.properties in a J2EE module's class path. The lookup takes place when the Logger.getLogger() method is called for the first time. In this article we recommend using this approach.

Third approach is to configure log4j.configuration=yourlog4j.properties as system-property.

I prefer the first one for each war/ear file in a J2EE app-server. But I couldn't make it work at this point I am stuck with the third option.

Monday, November 12, 2007

My favourite places on the web.

http://www.nandyala.org/mahanandhi

http://www.immigrationvoice.org/

http://www.cricinfo.com/

http://www.google.com

Friday, October 26, 2007

Unique indian english words and phrases...

It's very common for Indians to copy English buzzwords/lingo into their own style. Some of the examples given below are to reverse Indian English to American English.

"flats" - plot of land/piece of real-estate

"fly over" - overpass?

"post" - mail

"take home" - net salary

"hallo hallo" - yea.. Hello is almost prounounced and out-spoken twice in the flow of words :D

“full amount” – to pay the sticker price (without bargain/negotiation)

“xerox” - to copy

“hotel” - used for both restaurent and hotel - typically where we eat food.

“lift” – elevator

“bathroom” – in U.S.A it’s called rest-room for GKR (God known…)

“bill” – check/receipt

“barrer”, “waiter” – attendant, bartender

“we couldn’t able to” – we are NOT able to (or) we couldn’t

“we could able to” – we are able to

“steps” - stairs

"cricket game" - i.e, cricket sport. game and sport are almost used interchangeably.

"tiffin" - breakfast

"traffic signal", "traffic stop", "traffic lights" - In American english - "lights"

I just came across wiki page for this "Indian English" topic.

Saturday, October 13, 2007

My impressions of Indian Metros

Chennai - I don't regret moving to Chennai. Coz that's where I fell in love with my wife ;) This is the place I lived most (3 years) outside my home town, Nellore, AP, in India. The city itself has lot to be proud of. Just like any other major city in the world, it has a place for anyone coming from any walk of life. However the key to enjoy the stay in Chennai is to like south-indian food & culture. If you don't, this place is the last place you want to be.

Mumbai - This place definitely lives to its reputation - insane! This is my second city after Chennai where I lived for about an year. Mumbai life is costly, fast, practical and exciting. Unlike _all_ other places I had been, everyone respects time, form queues, works hard and fast. If someone wants to shake-up things little bit, they should live & work in Mumbai for couple of months.

Bangalore - This place has good climate, laid-back lifestyle and non-interfering locals. I lived here for 8 months and managed without having to learn ONE Kannada word. That's not how it works in other cities. I would suspect this place wouldn't have remained the same. I really wanted to relocate to Bangalore from Nellore after my graduation. But I had to do masters in Madras University and hence my stay in Chennai.

Hyderabad/Secundrabad - I made several visits to the Capital City of Andhra Pradesh. And one time I stayed for 15 days. This twin-cities are usually referred by the more popular Hyderabad name. This city doesn't compare to the metro cities of India (Chennai, Delhi, Kolkatta and Mumbai). However, it has lot of potential to become one. Be it Hindi(National Language) centric people, Muslim-Hindu population, Film and IT-Industry and the strategic location. I haven't come across anyone (including non-Andhraites) who stayed in Hyderabad, dislike the place.

Delhi - I hardly stayed 2 days in this city. I remember it took 30-45 to find parking spot in front of a restaurant complex. I don't remember anything particular of this place.

I wish to live/work/visit these places once - Kolkatta & Pune.

Friday, September 28, 2007

Finally resolved "unknown certificate"

Added both the certificates to ${USER_INSTALL_ROOT}/etc/DummyServerKeyFile.jks

Added both the certificates to ${USER_INSTALL_ROOT}/etc/DummyServerTrustFile.jks

Added both the certificates to ${USER_INSTALL_ROOT}/java/jre/lib/security/cacerts ??

Example command
/opt/WebSphere/AppServer/java/jre/bin/keytool -import -file -keystore -alias server.com01 –trustcacerts

If I add the certificate elsewhere need some more configuration in WAS.
http://www-128.ibm.com/developerworks/websphere/techjournal/0502_benantar/0502_benantar.html

Why it should be so hard?

Here are my series of thoughts on things that could have been simpler!

- Why it should be so hard to print request and response soap xml in WebSphere Application Server 5.x?

- Why it should be so hard to deploy one damn code change in WAS? It reminds me of COBOL days, flipping floopy-disks for compiling programs and waiting for 'minutes' to test a change.

- Don't send remainders to those who already did the job (timesheet submission or whatever).

- use urn: instead of http:// for name spaces.

Saturday, September 15, 2007

Smartest SOA - Just do it.

Yes. The smartest implementations of SOA should - Just do it.


It's inevitable next-step in IT. Whether a company likes it or not, if their architecture is not SOA in this year, it will deemed to be outdated and still lurking in past. As a consultant I would not rate high an organization that hasn't started implementing SOA already.


Like it or not, the first steps in SOA implementation is all about web services. In most of the Fotune 500 and like-minded but not-so-fortune companies, should have started exposing webservices to one-another.

Friday, September 14, 2007

Sept 18th - ImmigrationVoice Rally in D.C

To highlight the long-delays in getting permanent residency - legal immigrants, members of IV (ImmigrationVoice) have planned to conduct a rally in D.C and address few major bottlenecks in the Employment-based immigration process.

The rally will take place with more than thousand immigrants walking down the streets with banners and the usual stuff you can imagine in a peaceful rally.

For more information - http://immigrationvoice.org/

Monday, August 13, 2007

Open secret : ESB helps outsourcing more work.

Currently offshore teams may not have access to various webservice endpoints (URLs) in various environments. Thus we may not be able to use them effectively during end-to-end testing.

If we can introduce ESB (Enterprise Service Bus) SOA pattern in its basic form i.e, mediation/redirection, there is a scope for saving lot of time and $$K.

Assume that a dumb ESB server some URLs like the ones given below for address validation and redirect those URLs to actual URLs provided by the service-provider application.

Offshore team can be setup to access the below URLs and forever they have the ability to call the services provided by the above systems. All that they need is to configure their desktop / local-UNIX server environment with the below standard URLs.

http://dev-d1.soa-comp1.com/esb/addressvalidation
http://dev-d2.soa-comp1.com/esb/addressvalidation

http://test-t1.soa-comp1.com/esb/addressvalidation
http://test-t2.
soa-comp1.com/esb/addressvalidation

http://prod.soa-comp1.com/esb/addressvalidation

What do you think?

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...