Archive for October 2007

Microsoft just announced its resources and tools investments in adopting SOA. Some of the tools in this set were obvious. As can be expected, the prototype project Biztalk Services will be available as a CTP very soon. I spoke about the huge potential of this project a while back and its nice to see it coming to light. Biztalk Services takes the concepts of an ESB, and pushes it into the internet cloud – an ISB (internet service bus) if you will.


“Oslo will enable a new class of applications that are connected and streamlined — from design through deployment — reducing complexity, aligning the enterprise and Internet, and simplifying interoperability and management.” – Robert Wahbe, Corporate Vice President of the Connected Systems Division

This vision will be delivered through several servers and tools:



  • Server:  Microsoft BizTalk Server “6″ will continue to provide a core foundation for distributed and highly scalable SOA and BPM solutions, and deliver the capability to develop, manage and deploy composite applications.

  • Services:  BizTalk Services “1″ will offer a commercially supported release of Web-based services enabling hosted composite applications that cross organizational boundaries. This release will include advanced messaging, identity and workflow capabilities.

  • Framework: The Microsoft .NET Framework “4″ release will further enable model-driven development with Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF).

  • Tools: New technology planned for Visual Studio “10″ will make significant strides in end-to-end application life-cycle management through new tools for model-driven design of distributed applications.

  • Repository: There will also be investments in aligning the metadata repositories across the Server and Tools product sets. Microsoft System Center “5,” Visual Studio “10″ and BizTalk Server “6″ will utilize a repository technology for managing, versioning and deploying models.

 

 

I think October 30, 2007 will be known as the day Microsoft went SOA.  This might be my favorite release (this hour) confirming Microsoft’s commitment to SOA.



 ”The Managed Services Engine (MSE) is one approach to facilitating Enterprise SOA through service virtualization. Built upon the Windows Communication Foundation (WCF) and the Microsoft Server Platform, the MSE was developed by Microsoft Services as we helped customers address the challenges of SOA in the enterprise.

The MSE fully enables service virtualization through a Service Repository, which helps organizations deploy services faster, coordinate change management, and maximize the reuse of various service elements. In doing so, the MSE provides the ability to support versioning, abstraction, management, routing, and runtime policy enforcement for Services.”


 

I was working on an SSIS project to dump data from an Excel spreadsheet into a database table.  However, the Excel file happened to be a beautifully formatted, colorful, presentation of charts and graphs, subtotal rows and all sorts of interesting images.  The actual data I needed to dump didn’t even start until about 15 rows down and 6 rows across.  My mind started wandering on some custom component that would skip rows, strip subtotal columns and basically rewrite the entire spreadsheet.  But SSIS had better plans.


Thank goodness for the OpenRowset() property on the Excel Datasource component. This property allows you to specify the range to be considered by the datasource in the format Sheet1$B15:Z2000.  By specifying a range, I was able to ignore all the titles and data spread all over the sheet and concentrate just on my data range.  I thought skipping rows and ignoring headers / titles was going to add considerable hours to this project. I was wrong.

The next challenge was getting rid of the subtotal rows.  Subtotal rows were distinguished by a cell with the word “RESULT” and an empty cell next to it.  I added a Conditional Split using the ISNULL([expression]) to separate “real data rows” from “subtotal rows”.  After this, the import was straightforward into a OLEDB Destination.