SOA presentation

I think Udi dahan’s presentation on SOA architecture is one of the most influential expositions of SOA and IT alignment that I have come across.

UML Timing Diagram

We have some Batch Applications that run round the clock. After the developer releases this to the production environment a different team is responsible for the daily operations. The complexity of this application is such that it is difficult to convey the intricacies easily to that team. A UML timing diagram like the one shown below is one way of conveying the firing schedules to other teams.

This is not such a simple task though. Sometimes it is too intricate that several
training sessions are required but a diagram like this can be used as a ready reckoner.

Debug logs

We have a Windows SAN drive that is used to store files. The JCIFS library that is
used to access this drive sometimes timed out. We wanted to look at the packets before
increasing the socket timeout.Packet capturing software which
would have shown these access failures were barred from our production systems.
So we had a nagging debugging problem.

We set -Djcifs.util.loglevel=10 but this information is copious and was difficult to
analyze when printed in the DOS console.

We could not understand how to gather low-level debugging information in a log file.
I asked the forums and found that this code

PrintStream ps = new PrintStream( new File( "C:\\jcifslog" ));

jcifs.util.LogStream.setInstance( ps );

can actually redirect the log based on the “jcifs.util.loglevel” setting to a log file.
Now we have ample packet information to understand where the problem is.

We have realized that sufficient logs are indispensable even in production environments and
we make quite an effort to gather and print logs. Sometimes even though the logs are GigaBytes
in size we enable them as they are very helpful.

Teaching Computer Science

I came across Teach Computer Science without a Computer! in Hot Scalability Links for April 30, 2010from High Scalability by Todd Hoff.

Inspite of my experience with offshore work 🙂 , I still have a plan to teach my kid some basic ideas about computers.

SEMAT

I started reading the position papers of SEMAT which I came across in Ivar Jacobson’s blog. I am hoping that there will be good guidance from the signatories of this initiative which could make my life easier 🙂

What would you rather be doing?

It takes a certain inconsiderateness to kill passion and the offshore industry is fully capable of it.
The lean methodology proponents advise us to develop people and then develop products.
I am still trying to read and practise agile principles, TDD etc. but it seems to be more and more difficult. Lack of experienced managers and adaptive processes seem to be killing every project I have come across.
It is disheartening that many people do not realize that there are some new modern software development practices.
While I write this I am watching the Oredev 2009 panel debate recorded by Scott Hanselman. What a contrast ? These recordings have become the only solace in my career.

Payment card industry

I have not posted anything for a long time because I moved to chennai and started working for the payment card industry. Now I am working on a merchant acquiring system. This type of industry has strict SLA’s and a high level of security governed by PCIDSS and many other specifications.

These are the main architectural constraints of this project

1. Job scheduling and lodging of settlement and other files according to various timezones.

2. A fully multi-lingual website.

3. Auditing of logs, security & code reviews. Automatic notification of potential security breaches.

4. 24×7 operation with local and Disaster recovery.

5. Straight through processing of merchant card transactions.

6. PKI infrastructure

and many other aspects.

The material available on the software technical approaches to handle all these aspects is either vast or scarce. Sometimes expensive software is required like SiteMinder SSO solution or Data lifecycle management or File archival for longer periods.

I am turning to what people like Michael Nygard write.

I hope to blog more about

1. memcached

2. Multi-lingual web sites

3. Time zone handling and job scheduling

4. File transfer using various protocols like SFTP, FTPS etc.

Budget constraints mean that some tools that seem to be very useful like Splunk for log management or a full Identity LifeCycle Management tool like SiteMinder are not within our reach. Hope we can find alternate Open-source solutions.

Lost in the learning cloud

My current software microcosm to survive the economic downturn

Meaning of Story points

I spent a few months on an agile project but did not understand the meaning of User Story Points until I read “Hours vs. Story Points”

Original paper on MVC

We take the Model-View-Controller idea as granted. Sometimes we do not even understand the true idea behind this pattern. Recently I was trawling the net looking for original reading material after I was disappointed with my previous job. I came across this original paper on MVC written by the inventor, Trygve Reenskaug. It is interesting to note that many of the ideas in Software engineering originated several decades back( 1978 in this case )

It is easier to download a framework and prototype an example but it is far more difficult to understand the underpinnings of solid design. It is sad that our offshore business forces us to neglect design principles and take the easier route.