Cubic Compass Software
(Warning: What follows is a technical discussion. We will return to our regularly scheduled blogging on less technical CRM/CEM topics in the near future).
 
It seems a shame to have all these multi-processor servers and not be able to use them to their fullest extent. You can't even buy a new laptop today that doesn't have, at minimum, something like an Intel Core 2 Duo.
 
In layman's terms, computer manufacturers realized they could no longer cram more power onto a single processor, so lately they've started welding 2 processors together in an attempt to double their computing power. Unfortunately, today's software rarely knows how to harness this extra parallel power.
 
There's a certain disharmony between the new concept of Platform-as-a-Service (PaaS) offerings that continue to use old programming language concepts.
 
Today's languages are very serial. For example, many Apex code examples SELECT a bunch of Leads, Contacts, or Campaigns, then one by one evaluate or process them.
 
The server could have 2, 4, or 8 processors, but odds are these scripts will only use 1. Within the scope of a single web page request, this is probably fine. Perhaps the other processors are being utilized by other web page requests.
 
But for asynchronous processes, such as delivering mass emails or updating records, this approach is wasteful given the availability multi-core processors.
 
Asynchronous Apex is a step in the right direction, however this feature appears to provide the ability to automatically run a script after hours (but still running through serial loop processing).
 
I've been thinking a lot lately about how next generation CRM/CEM architectures should must make use of today's server architecture. Several eMarketing and CRM tasks can benefit from parallel execution:
 
* Mass Email Marketing
* Lead Scoring
* Data Cleansing
* ETL / Data Transfer and Synchronization
* Report Generation
 
I had dinner a few weeks ago with one of the architects of a programming language named Haskell and he painted a dire picture "Object oriented languages are becoming obsolete. Functional programming is the wave of the future."
 
Fortunately, because our architecture is based on .NET, if we ever get bored with the limitations of one programming language, we can tap into dozens of alternative languages (some days I get the feeling we're doing more to offer .NET Development-as-a-Service than Microsoft is. Something isn't right... why isn't Microsoft doing this?).
 
One functional programming language in particular, named F#, is emerging as an ideal language for harnessing the power of today's multi-core servers for use in eMarketing.
 
While not set in stone, it's beginning to look like our next generation architecture will approach traditional eMarketing processes in a whole new light. Hopefully harnessing faster and cheaper infrastructure will result in more frequent, relevant, and intelligent online customer interactions.
 
Would we go as far to expose functional programming concepts through Dialogue Script? That's an interesting concept. I suspect BPM or diagram tools will provide the necessary layer of abstraction to make functional programming concepts successful in PaaS/DaaS environments.
 |  |  | 
Posted: Thursday, April 17, 2008 4:19:47 AM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 

Search