Tuesday, December 25, 2007

Architecture pattern : Coupling

Thursday, November 29, 2007

Software Development

Sunday, November 11, 2007

Aspect Oriented Programming

Saturday, October 27, 2007

Structural inefficiency in Health Care Network

Sunday, October 14, 2007


Thursday, October 4, 2007

Disable Browser back button

"No back button when you do this."


"a href="http://soaas.blogspot.com/" onclick="javascript:location.replace(this.href); event.returnValue=false; ">No back button when you do this. /a"

Sunday, September 30, 2007

Evolution of Computer Systems Architecture

“Had we had such a progress in transportation as we have in computers, one could travel cost to cost in few seconds at a cost of few pennies…”

Wednesday, September 19, 2007

IT Infrastructure Planning

Tuesday, September 4, 2007

Outward Software Development Model

Outward Development Model [ODM] is very common in projects involving op sys development, application framework development, platform integration tools, etc. Is there any real alternative to this model when we are working on such a big project with very wide impact? TDD, XP,RAD, DDD…

Can Rome be built in a day?

Friday, August 24, 2007

Object Relational Mapping

Thursday, August 2, 2007

C# Compiler Mysteries

This is an ERROR

protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
SortedList sl = new SortedList();

This is NOT an ERROR

protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
SortedList sl = new SortedList();

Want to know more about this , check out

And here you will find more opinions

Wednesday, August 1, 2007

Role Permission Explosion in Role Base Access Security [RBAC]

Formula: nCr = n! / [(n-r)! r!]

n : Possible Permissions

r : Possible Roles

So for 3 Permissions, possible roles are

3C1+3C2+3C3 = 7

So for 3 permissions, we have 7 possible roles in 1 application. If we have 2 applications then the no of roles will be 14.


How to minimize / manage roles?


By Grouping

  1. Role Hierarchy
  2. Role Linking

By Enforcing Business Rules

Friday, July 6, 2007

Application Performance and Simplicity

Tuesday, May 15, 2007

Filter and Pipe with Publish and Subscribe Flavor

Filter and Pipe Pattern for SaaS

Monday, April 23, 2007

SaaS in Action!

Check this out


Just copy the html code from this website on any webpage. This script will give you a decent , ajax enabled world clock. Cool app and good example of software as service.

Wednesday, March 14, 2007

SaaS : $19.3 billion by 2011

Check this out

"According to Gartner, the market for SaaS applications grew by 26 percent last year, from $5 billion in 2005 to $6.3 billion in 2006. The consulting firm expects demand for SaaS to continue growing at a 25 percent compound annual rate over the next five years, to $19.3 billion by 2011. Most of those dollars are going to new entrants rather than established software vendors like Oracle (Quote), SAP and Microsoft (Quote)."

For full story - check this out "Vendors Missing the SaaS Wave By Michael Hickins " [http://www.aspnews.com/news/article.php/3664361]

Tuesday, March 13, 2007

More Power per Source Code line

Now this example is just hypothetical and grossly overestimation of the reality. But the point is, we are writing less line of code to achieve same results. In my opinion, this is because

1. Powerful programming constructs and smart compilers [for example, C# closure]

2. Advances in Algorithm and Hardware

3. Greater level of code level abstraction

For Example, Consider following example in C# and same code compiled by MS CLR

[Example from : http://www.thinkingms.com/pensieve/CommentView,guid,fd10bfa8-1aeb-4353-84c8-cd80e418424f.aspx]

// Display powers of 2 up to the exponent 8:
foreach(int i in Power(2, 8))
Console.Write("{0} ", i);

Now this code will be compiled as

public static IEnumerable Power(int number, int exponent)
int counter =0;
int result = 1;
while(counter++ < result =" result">
result = result * number;
yield result;

So the point is, foreach is an elegant syntax. It also hides a lot of complexity at the programming construct level. Now, the level of abstraction and its impact on performance is altogether a different topic.

Still, if we are using high level language like C# or Java for developing business applications then this abstraction and syntax simplicity is good. [This argument is based on a long discussion with my friend Jon Saltzman]

Again, I heard an argument that this abstraction will result in increased programmer productivity. I am not sure about that. Anyway, point is modern programming languages provide more power per source code line

Friday, March 9, 2007

Gartner Hype Cycle

Time and again I have seen and heard discussion on the rise and fall of a particular technology. With multi core processors and Internet based distributed programming – this debate is getting sharper by each passing day.

I found one tool to analyze the rise and fall of any technology against the proven industry data – “Gartner Cycle”. Here is my take on current state of the technology...

Sunday, February 18, 2007

One More Security Model

Here is another security model. We used this in one of our application.


1. Accept Username and pass it to the database in plain text
2. At Database, from username find out the corresponding salt value
3. Encrypt the salt value at database end and pass it on to your app
4. Decrypt the salt value at app level and compute the hashed password at app level
5. Hashed password = salt value + user password
6. Encrypt the hashed password at app level and pass it on to database
7. Decrypt the hashed password at database level and compare it with one stored in database
8. If match is found - pass 1 else pass 0


1. No password is stored in database; only hashed password is stored with corresponding salt value and username
2. We have used identical .NET assembly [same algorithm for encrypt,decrypt and hash mechanism] at app and database end. .NET CLR integration is used to implement this dll functionality inside database
3. Webservice is used to communicate with database. HTTP Endpoints and HTTP.SYS is used to create this web service


Windows 2003, .NET 2.0 and SQL Server 2005,ASP.NET

Thursday, February 8, 2007

Business Models of the Future

Read this interesting argument regarding the Software Business Model of the Future at http://knowledge.wharton.upenn.edu/article.cfm?articleid=1651&CFID=3283734&amp;amp;amp;amp;amp;CFTOKEN=97771900

Gist of this intellectual argument can be summarized as follows

Business Models of the Future

Tuesday, January 30, 2007

Difference between ASP and SaaS business model

The extended Application Service Provider Service Model

The International Association of Software Architects published myarticle on SaaS - “The extended Application Service Provider Service Model” in the December 2006 issue of the “Perspectives of the IASA” magazine.


The paper will focus on the process of service delivery in an extended Application Service Providers [ASP] model. The aim of this paper is to establish the unique characteristics of an extended ASP model. Observations in this paper are based on a Service Oriented Architecture (SOA) implementation. This paper discusses the service delivery model, and addresses challenges and benefits of an extended ASP. It will conclude with a discussion of the service implementation strategy.

Direct link for PDF


Code Camp 2007

SoCal Code Camp : Software As Service [SaaS] for Developers presentation

What is SaaS? From Salesforce.com to workday.com, many vendors are offering Internet based, hosted software services. This business model is commonly known as SaaS. Presentation will focus on Design and Development of SaaS. We will cover the fundamentals of SaaS, service design guidelines, database considerations, operational and performance issues in SaaS domain. Presentation will be available on-line.

Download this presentation and Demo Application Source code [c#,T-SQL and ASP.NET] from :

For Refrence Please check : http://www.iasahome.org/web/home/perspectives [Download the latest issue of the Perspectives!]