Application Virtualization

Recently, I have been thinking about a concept currently dubbed "virtual business logic" or something like that. It's basically taking the capabilities inherent to a virtual directory and turning it from focusing on identities to a method of correlating application services. Something along the lines of this picture: vbls_2.jpg

A system that implemented this model could be referred to as a Virtual Business Logic Server (VBLS). This would allow application developers to leverage the virtual directory as a "service aggregator" of sorts that would allow the definition of higher-level business logic. In this model, the application developer could request a higher level entity from the VBLS and get the full dataset regardless of back-end source returned.

This model could be implemented simply by extending the functionality within existing virtual directory servers such as RadiantOne.

So, from a use case (for a product managed through Eclipse):

1. Go to Eclipse and point it at web services in my environment

2. Use Eclipse to map the data elements between the services together

3. Define the logical business entities and map to the various services

4. Define the security rules for that business entity

5. Make the business entity available as a service to the presentation layer

6. When the results are determined, they are cached before sending to the UI

So,

1. I define a business entity called "View a Case"

2. The "View a Case" entity is mapped to three services: Get Case Details, Get User Information, Get Worknotes and are correlated in the mapping previously done in Eclipse

3. The "View a Case" entity is security by password/certificate/etc so that only apps that present the proper key can access the call

4. The portal calls the "View a Case" entity

5. The VBLS take the call and determines the result

6. The result is cached for improved performance

7. The result is returned to the portal

The full concept here is still being thought through and I would definitely be interested in feedback.