CodeFutures News & Industry Commentary Blog

Tuesday, October 31, 2006

Concurrent Programming

The subject of concurrent programming - writing applications that do more than one thing at the same time - should be one of the hottest in information technology. I just bought a top of the range PC with an Intel Core Duo Processor. There was a fairly big price premium for the best dual core processor so I ask the vendor what applications are written (using concurrent programming) to take advantage of the multiple cores. The answer was NONE! The problem is that almost nobody knows anything about practical concurrent programming beyond impractical (for business application development) threading so business applications are just not written using concurrent programming.

PJ Murray
CodeFutures Software.


SOA Programming Models

There is a great article in InfoQ on SOA programming models.

The three SOA programming models outlined in the article are:

  • Windows Communication Foundation (Indigo) programming Model from Microsoft, which attempts to simplify service programming by creating a unified OO model for all service artifacts.
  • Java Business Integration (JBI) model from Java Community Process, which address complexities and variabilities of services programming through creation of services abstraction layer in a form of a specialized (service) container.
  • Service Components Architecture (SCA) from IBM, BEA, IONA, Oracle, SAP, Siebel, Sybase, etc., is based on the premise that a "well-constructed component based architecture with well-defined interfaces and clear-cut component responsibilities can quite justifiable be considered as an SOA.

What the article does not explain is that Inidigo is Windows-only and JBI is Java-only, which means that they are not ideal choices for a universal SOA programming model. SCA s the only multi platform, multi language SOA programming model with the necessary openness to become universal.

The article also explains the relationship between Service Data Objects and SCA, particularly from an SOA programming models perspective:

SCA implementations rely on the Service Data Objects (SDO) 10, providing the technology to represent a universal model for data. SDOs are the basis for the data exchange in component's interactions. The fundamental concept in the SDO architecture is the data object-a container holding primitive typed data and/or other data objects. Information about included data is provided by metadata, explicitly referenced by the data object. A combination of the data objects in SDO is represented by the data graph. In addition to the objects themselves, this graph contains a change summary that is used to log information about what data objects and properties in the graph have changed during processing (similar to ADO in Microsoft environments).

PJ Murray
CodeFutures Software