Thursday 18 December 2008

BizTalk Server 2009 (Beta) for Public

Hi BizTalkers,

On the 8th of December 2008 - Microsoft announced the availability of BizTalk 2009 Beta for public.
https://connect.microsoft.com/site/sitehome.aspx?SiteID=218

Try your hands with the beta version of the new BizTalk Server, looking at other release cycles the actual production version is expected to release early next year. I have been waiting for this release since I am not a beta tester and now it’s available for public.

Along with the BizTalk Server 2009 beta, ESB Guidance 2.0 CTP is also available now http://msdn.microsoft.com/esb

Friday 21 November 2008

Multiple MessageBox databases in a BizTalk Server group

My current client is one of the retail giants in UK. During the Christmas period, their numbers of business transactions are always very heavy. So, all of their IT applications will face heavy load during October - December period. As part of preparing for that period, the peak readiness activity will start in their initial part of the business year which starts from February. I have been employed to prepare their integration services applications to handle their projected high business transactions during Christmas. Many ideas were discussed for the integration applications which uses BizTalk server. One of them is, empowering the existing BizTalk servers inventory with more servers for scalability and reliability. The scalability of the BizTalk Server databases can be achieved by adding multiple Messagebox databases. The reliability for the BizTalk Server databases can be achieved by using clustered server mechanism. In this post, I am going to discuss about using multiple Messagebox databases in a BizTalk Server group.

First, we will see when we need to use multiple MessageBox databases.

We use the multiple MessageBox databases, when we have

  • More database transactions which increases the Messagebox database size and results in lesser performance. For example, when the number of messages to the MessageBox is more.
  • Heavy message interactions which is database-intensive and results in lesser performance. For example, if the messages interact with the MessageBox are heavy in size.

The MessageBox database performs three main functionalities. They are:

  • Evaluate subscriptions.
  • Message publication.
  • Save the message state.

So when we decide to add multiple MessageBox databases, our intention should be to distribute the functionalities to multiple databases/servers rather than sharing these functionalities with multiple databases/servers. We will see more detail of this in the following section.

When we add the first MessageBox database to the BizTalk processing servers using the Configuration Wizard, we need to make this MessageBox database as Master MessageBox database. Master MessageBox database is one of the MessageBox databases in your BizTalk Server group which holds the master subscription information, performs the subscription evaluation functionality of the MessageBox and routes the messages to the appropriate MessageBox databases for active message publication. Yes, Master MessageBox database doesn't perform the message publication. It only performs the "Evaluate subscriptions". This is done by disabling the new message publication in the Master MessageBox database.

clip_image001[4]

Figure 1: Disabling new message publication for Master MessageBox Database.

A Master Messagebox database can receive two types of messages:

  • A new activation message.
  • An active instance's message/Correlation message.

Master MessageBox database with new activation message:

When the new activation message received by the Master MessageBox, after evaluating the subscription the Master MessageBox database distributes the activation message to the next available MessageBox database(secondary). When you have more than one secondary MessageBox database, Master MessageBox database uses it own build-in logic for load balancing the message for the publication with secondary MessageBox database.

clip_image002[3]

Note: Secondary MessageBox databases are the MessageBox databases which are other than Master MessageBox database in your BizTalk Server group. Though "Secondary" is not the official term, it is used to refer the non-Master MessageBox databases in the group.

Master MessageBox database with Correlation message:

When the correlation message is received by Master MessageBox database, it performs the lookup operation in the database for the secondary MessageBox databases that contains the state for the correlation message. And it distributes the message instance to the secondary Messagebox database which is waiting for this message. In this case, the Master MessageBox database doesn't perform round-robin pattern for message distribution. Rather it distributes to the specific secondary MessageBox database which is already expecting for this message from Master MessageBox database.

During dehydration, the Orchestration engine stores the in-memory representation of the Orchestration, its associated messages and state in the secondary MessageBox database which activated its instance.

Ok, we have decided to add multiple MessageBox databases in the BizTalk Server group. But how many is "multiple"? A minimum of 3 MessageBox databases (as recommended by Microsoft) for a BizTalk Server group. Out of these one should act as the Master MessageBox database (needs to disable the message publication on this MessageBox database) and other two should act as the secondary MessageBox databases. This recommendation is made because additional MessageBox databases incurs overhead by the Master MessageBox database for routing between the MessageBox databases. If you have only two MessageBox databases for a BizTalk Server group then most of the benefits gained by the additional MessageBox database is offset by the overhead consumed by the Master MessageBox for message routing. You have another option of using 2 MessageBox databases both performing the subscription evaluation and message publication with your own load balancing logic. In this case distributed transactional consistent with the MessageBoxes cannot be achieved, and hence this method should not be implemented.

So it is always

Master MessageBox database + n- Secondary MessageBox databases.

Another colleague of mine asked can we have multiple MessageBox databases in the same server. Yes, we can have this, but ensure that the existing database server has enough CPU and I/O resources and is bottlenecked only by the lock contention. In most of the enterprises situation this may not be the case. So by adding the secondary MessageBox database on the same physical server can cause server-intensive problems rather than solving the overhead problems involved in the high and heavy message transactions with the MessageBox database server. So it’s always advisable and better to use Messagebox databases in a separate server. For reliability use both the Master and Secondary MessageBox databases in the Clustered server environment.

clip_image003[4]

Since we have started our peak readiness activity much before the Christmas peak time, we had a sufficient time to test the new BizTalk Server group with multiple MessageBox databases in terms of performance and scalability. So thorough testing of your updated server infrastructure is vital in achieving the desired result.

Thursday 13 November 2008

BizTalk Server 2006 - Performance tuning

Kelvin has shared his excellent collection of resources on performance tuning for BizTalk server 2006.

I have started to read through his entire resources. This shall be useful to many other like me.

Thanks Kelvi for sharing your collection.

http://intltechventures.blogspot.com/2008/11/2008-11-01-saturday-biztalk-2006-r2.html

Wednesday 15 October 2008

BizTalk testing - Reference

Recently I have read a series of blogs on "BizTalk Testing Guidance".  It details the testing strategies and contains sample test harness code for schema, map, pipleline component, orchestration and .NET component in BizTalk Server. I felt it is interesting and useful, so I thought to refer it.

http://geekswithblogs.net/michaelstephenson/archive/2008/04/27/121687.aspx

BizTalk Server 2009 scheduled for release

The next version of the BizTalk server will be called "BizTalk Server 2009" not BizTalk Server R3. The newer version is scheduled for release on first half of 2009.

BizTalk Server 2009 will be full release of the product. Some of the updates on the newer version are:

  • As one of the expected update, it supports the latest Microsoft platform technologies, including Windows Server 2008, Visual Studio 2008 SP1, SQL Server 2008 and the .NET Framework 3.5 SP1
  • Hyper-V Virtualisation Support: Microsoft's official embracement of the Virtualisation of the servers. Microsoft was reluctant to provide support for its products on virtualised servers. In BizTalk Server R2, this feature was added in (http://msdn.microsoft.com/en-us/library/cc768518.aspx) and in the newer version it has been extended to take complete advantage of the latest Virtualization improvements included as part of Windows Server 2008 Hyper-V.
  • BizTalk Server can be deployed in multi-site cluster scenarios, where cluster nodes could reside on separate IP subnets and avoid complicated VLANs.
  • Two new adapters for Oracle E-Business Suites and SQL Server. And updates to the existing adapters.
  • Expanding the BAM functionality with SQL Server 2008 Analysis Services.
  • Enhanced support for EDI and AS2 protocols, updates for SWIFT support.
  • New platform for RFID (Radio Frequency Identification).

Reference: http://www.microsoft.com/biztalk/en/us/roadmap.aspx

Wednesday 1 October 2008

Schema (XSD) from XML or DTD file

In software development often the reverse engineering comes handy, creating the design document from the code, drawing a database diagram the existing database etc. Similarly I have often faced situation where I need to generate the schema files from the XML  or DTD file. Though we have various options to achieve the same, we were always using some utility outside the standard IDE's.

Visual studio (from 2005) has provided an option to generate the schema file from the XML or DTD file using the following ways:

  • Right click on the project name
  • Select "Add', choose "Add Generated Items.." option.
  • Choose "Generate Schemas" and click "Add" button.

For XML file:

Select the "Document type" as "Well-Formed XML" and browse for the input XML file

If this option is being used for the first time in your machine,you will see "Well-Formed XML (Not Loaded)" in the document type dropdown list, so you have to execute the "InstallWFX.vbs" script, from "InstallDir:\Program Files\Microsoft BizTalk Server 2006\sdk\Utilities\Schema Generator\" before you use the above method.

For DTD file:

Select the "Document type" as "DTD" and browse for the input XML file

If this option is been used for the first time in your machine "DTD(Not Loaded)" in the document type dropdown list, so you have execute the "InstallDTD.vbs" script, from "InstallDir:\Program Files\Microsoft BizTalk Server 2006\sdk\Utilities\Schema Generator\" before you use the above method.

Click "Finish" to get your schema file.

Wednesday 18 June 2008

RSOR - MoM Rules/Alerts targeted to a particular agent

RSOR - Resultant Set of Rules is an excellent utility to get the set of MoM rules/alerts targeted to a specific client. Thanks to Tom Keane from Microsoft who is the author of this utility. We use this utility more often in our development servers where we frequently add rules/alerts. In development, this utility can help us to ensure the newly added rules/alerts have been reflected in the MoM database or in production this can help us to identify the list the rules/alerts targeted for a specific agent without using the admin-console.

Syntax:
RSOR.exe <MOMDBServer[\instance]> <TargetAgent>

Ensure that you have enough permission to read the MoM database or use a login which has got at least read access to the MoM database to execute this utility.

After executing the above command, check for “ResultantSetOfRules” folder in the root directory where you have copied this utility.

Reference:
http://technet.microsoft.com/en-us/library/cc180050(TechNet.10).aspx

Read the following article for essential tool for MoM:
http://technet.microsoft.com/en-us/magazine/cc160922.aspx
Reference:
http://technet.microsoft.com/en-us/library/cc180050(TechNet.10).aspx

Read the following article for essential tool for MoM:
http://technet.microsoft.com/en-us/magazine/cc160922.aspx

Tuesday 17 June 2008

Remove a BizTalk server from BizTalk server 2004 group

You must have SQL 2000 Server system administrator rights or BizTalk Server 2004 administrator rights to follow these steps. These steps would only be performed on the BizTalk Processing server has failed as is being replaced.

1. Start the BizTalk Server 2004 Administration snap-in.
2. Expand Servers.
3. Click the computer that is not working.
A list of the host instances that are associated with the computer that is not working appears in the results pane.
4. Right-click each host instance and then click Delete. Repeat this step until all the host instances that are associated with the computer are deleted.

Note: You receive the following error message when you try to delete a host instance that is isolated;

Failed while deleting the Windows NT service BTSSvc {F46166EC-B4B8-4129-AB86-F3BB212CEC50}

You receive the following error message when you try to delete a host instance that is in process;

The network path was not found

If you receive one of these error messages click OK. After you click OK you receive the following error message;

You can forcefully delete this host instance. This may leave orphan orchestrations and prevent cleanup of COM+ applications and NT services on machine ‘computer name’. Do you want to proceed with forceful host instance deletion?

If you receive this error message click Yes.
5. Click Start and then click Run and type wbemtest.exe and then click OK. Hope wbemtest.exe should have already installed in your server.
6. In the Windows Management Instrumentation Tester dialog box click Connect.
7. In the Namespace text box type root\microsoftbiztalkserver and click Connect and the click Enum Instances.
8. In the Class Info dialog box type MSBTS_ServerSetting under Enter superclass name and click to select Immediate only and then click OK.
9. In the Query Result dialog box click the computer that is not working and then click Delete.

Note: You cannot delete the server instance if the server is associated with any host instances.

Problems faced while installing BizTalk Server 2004 – Service Pack 2 (SP2)

It always had been a tough time when we installed BizTalk Server 2004 – SP2 on our servers. Thank god we have a good pre-production environment similar to the production server to try our hands. The lessons learnt are really a good experience.

* Before you apply the SP2, make sure that you have backup for all, off-course this should be the norm for any service pack installation. In BizTalk 2004 SP2, for some reason if you want to uninstall the SP2, it uninstalls the SP2 binaries and restores the BizTalk Server binaries to their SP1 state. SP2 contains major database schema changes and uninstalling SP2 does not restore BizTalk Server databases to their SP1 state. So you must restore the BizTalk Server databases from your backup.

* One at a time. If you have farm based set-up for your BizTalk Processing servers and all access a single cluster for the BizTalk database, ensure that you install the SP2 at one BizTalk server at a time. As said, SP2 contains major database schema changes and if you do the installation of SP2 on more than one server at a time (just to save sometime) there are high chances for your BizTalk databases to crash.

If the installation fails with some error, the SP2 executable package is expected to roll-back all the changes it had done till the failure. It doesn’t seem to be proper always. I have seen scenarios where the host instances were disturbed and all the in-process instance will appear as isolated host instance. In this case to recreate the host instance, you have to delete the instance from both the admin console and also from the services tray (services.msc). To delete the services from the service tray use the following command:


SC delete <<BizTalk Service Name>>

* "bts_CleanupMsgbox" is empty (or just with stored procedure structure without and process code in it) by default. Microsoft doesn't suggest by default to use this SP because of its seriousness in purging the "live" data, but for our operational reasons we decide to go ahead in using this SP, this has to be created explicitly. Microsoft provides the SQL-script to create this SP which can be located at

<BizTalk installation directory>\Schema\msgbox_cleanup_logic.sql

from the BizTalk processing servers.

So when we install BizTalk-SP2, this stored procedure is brought back to default which is empty.

The above are just the few of the issues we faced. And its always advisable to plan properly for restore while installing the BizTalk Server 2004 – Service Pack 2.

Read the following Microsft KB article on issue in BizTalk Server 2004 Service Pack 2 that are not documented in the Readme file:
<<http://support.microsoft.com/kb/940519>>

Tuesday 10 June 2008

Debugging is not supported under current trust level settings

When you try to open any web service/web-application from Visual Studio, you may get the following error:

Debugging is not supported under current trust level settings.

The problem is with the trust level setting of your application. Modifying the web.config file of your application would solve this problem:

Solution:
Locate the <system.web> section.
Insert the tag: <trust level="Full" />

Monday 12 May 2008

Cleared Microsoft certification on BizTalk Server 2006 - 70-235

Hi All,

Yesterday I have cleared the Microsoft certification on BizTalk Server 2006 (70-235). It’s a great relief after some good hard work.



Cheers
M.R.ASHWINPRABHU

Sunday 4 May 2008

MoM - Consolidation and Timer based rule

I have a requirement to create a MoM rule which would automate a task based on some specific eventlog entires in production servers. The automatic task is to recycle some of the COM+ components based on the eventlog. So the eventlog entry is the evidence for me to identify that the issue has occurred. I am going not going to talk about the scripts which I have used to restart the COM+ componet but how I have configured the MoM rule for the same.

So I have to create a MoM rule which would monitor the production server and perform the resolution activity. But the crux is to perform the resolution activity only when the continuous 5 entries of the eventlog are identified in the span of 30 seconds in the production server. So I have to create MoM rule which should act based on the number of the entries of an event in the given time window.

I have achieved this by creating an event-rule which would monitor the specified eventlog for the “Repeat Count” of 5 and I have created another consolidation rule which would maintain a counter for event-rule in 30 seconds. This counter will be reset to zero, if the specified count of logs doesn’t met in specified period (30 seconds). i.e. if the application logs 4 event entries for the specified criteria in 30 seconds. The event-rule’s repeat count would be set back to 1. But if the application logs event entry for 5 times in 30 seconds (or in lesser than 30 seconds), the event-rule’s response entries would trigger.

Following are the snapshot of the MoM rules:

clip_image002

Figure 1: Event-rule for the event entry of 5 entries.

clip_image004

Figure 2: Consolidation rule for 30 seconds.

Monday 28 April 2008

MoM (Microsoft Operations Manager) Design

We have been using MoM (Microsoft Operations Manager) in our BizTalk projects for operational support purposes. I am already very much impressed with the advantages it provides for any Wintel applications in its production support arena. Few months back I got an opportunity to design another MoM package for a messaging product based out of Java for Windows environments. The messaging product has been in use for nearly a year in our customer’s production environment.

When I mean by messaging product, we can’t not compare its capabilities with BizTalk, as it doesn’t perform any business processing upon the messages while transferring the messages. But its intended objective is to just transfer very large files in very high frequency to different platform like UNIX, Mainframe etc. This product is yet to evolve in many ways for an enterprise usage as we all know no application is complete in this universe.

Our customer was already using an in-house operational tool to handle transfer failures (and also to handle the products open issues). This product has very minimal capability in throwing/publishing the exceptions (file transfer failures). Any transfer failures from this product would be simply logged in the event log with same Event ID, Event Category, Event Source and the only difference is the description of the error. Our customer is using an alert monitor tool, which provides the dashboard sort of view to the 1st line support. So, all the operation tools should provide their output to dashboard tool. They call that tool as Mangers of Manger.

Current system architecture

Exceptions in this messaging scenario can be like:

· File not found at source.

· Configured pattern of files are not available for transfer.

· Configured file path / server unavailability.

· File has been occupied by another process

· Server disk space full

· Staging folders maintenance issues

· Many product related issue

· Unknown.

Currently used operational tool doesn’t have the intelligence to classify the exception and act accordingly/show the classified alerts to the Monitoring tool. So the challenge is to create an efficient MoM-package which would identify the different categories of the alerts and give the output accordingly to the Managers of manager tool.

I have classified the exception as below:

Exception Classifications

The exceptions are classified into different category since each category requires different actions:

  • Subscriber issues require Call-out to the Subscriber production-support team.
  • Messaging service issue requires Call-out to our production team.
  • Product issue requires some workarounds which can be automated again using MoM.
  • Off course we can’t always capture all the exceptions, so a generic catch to capture these exceptions also and throw them with lower severity to the monitoring tool.

In MoM with its ability to use custom scripts, I have configured the categories of the exceptions, by throwing them with Custom Exception Number and Custom event description lets say exception category appended at the starting of the every event description. So I have configured a generic alert called “Event-Filter” which swallows all events from the application. In the event-filter I have used a script which would read the event description and in turn throws another alert with different event ID(specific to category) and the event category append in the event description. For example: if the exception is “File not found”

The messaging product would throw the exception as following in the event log:

Event Type : Error

Event Source : ABCD

Event Category : None

Event ID : 123 (Always same for all error)

Date : 28/04/2008

Time : 15:21:48

User :

Computer : DummyMach123

Description : Files not found at the configured path \\mshsrmsappp0008\P1102747\TestFile.txt>

This event log would be swallowed by the Event-Filter script to throw a MoM event:

Event-ID: 1001 (Custom defined)

Event Category: Subscriber

Event-Decription: Event_Category [Subscriber]: Files not found at the configured path file:////mshsrmsappp0008/P1102747/TestFile.txt

And for the alerts which came out of the event-filter I have configured a rule to action the category related actions. So the new MoM-package would enable the application to behave something like the following:

New MoM package

Following is the part of the event-filter script which is in if-condition, checks the event description and calls another function (CreateEvent) to throw the event with different event criteria’s.

If InStr(strParentEvtDesc,strSCNoMatchPattern) Then

'match the pattern

strParentEvtDesc= strECSubscriber & objContextEvent.Message

CreateEvent EVENT_ID_NoMatchPattern,EVENT_TYPE_ERROR,SCRIPT_EVENTSOURCE,strParentEvtDesc

Elseif…

Following is the method used to throw the event from event-filter:

Sub CreateEvent(intEventNumber,intEventType,strEventSource,strEventMessage)

Set objEvent = ScriptContext.CreateEvent()

objEvent.EventSource = strEventSource

objEvent.EventNumber = intEventNumber

objEvent.EventType = intEventType

objEvent.Message = strEventMessage

ScriptContext.Submit objEvent

End Sub

Following is the event rule in MoM for the subscriber related issue and marked is the criteria for the rule:

clip_image002

As you would have noticed, in the new-MoM package design diagram (showed above) I have showed a XML- file next to the subscriber issues box. Okay I am able to classify the exceptions and now what I am going to do with it? If it’s a subscriber related issue, as I mentioned earlier we want throw a MoM alter which would contain the details of the specific subscriber. I am going to maintain the subscriber contacts in the XML file which can be used a configuration file for the alert for my subscriber related issues. How I am going to accomplish this requirement? We will see it in another day.

Special Thanks to Mr.Lee Nichol for whatsoever little knowledge I have in MoM

Monday 24 March 2008

IProbeMessage interface in BizTalk.

If the pipeline component's execution mode is set as "First recognized" or "All recognized", Pipeline Manager iterate through all the components in the stage to find a component which has implemented IProbeMessage interface; then it executes that component leaving others in First recognized mode and executes all the components that recognise the format of the data in the All recognized mode. i.e. IProbeMessage interface enables the pipeline component to decide do they want to process the message or not.

In BizTalk pipeline, there is concept called Message Probing. This means pipeline component intercepts (probes) the message and determine the format of the message. Disassemble stage's message probing capability enables it receive different format of the message to be received from same endpoint, enables it to identify the format of the message that is being processed dynamically.

IProbeMessage interface contains a method Probe which returns true if the disassembler decides to process the message. Probe method read firs few bytes of the message data stream in order to decide whether it is capable of processing the message or not.

public interface IProbeMessage
{
bool Probe(IPipelineContext pContext, IBaseMessage pInMsg);
}

Sunday 2 March 2008

BizTalk in .NET 3.5 Framework

To find out, What's in .NET 3.5 framework for BizTalk.

http://blogs.breezetraining.com.au/mickb/2008/02/08/Feb27thSydneyBizTalkUserGroupALookAtTheNET35Framework.aspx

Adapter version details under host process domain.

Our production support guys came up with an interesting requirement, How to find the version of the custom BizTalk adapter assembly being executed under particular host. This has to be achieved without disturbing the production servers.

The answer is pretty simple, use the Process Explore (procexp.exe). One of the gems from SysInternal (Acquired by Microsoft). Process Explore doesn’t require installation, just works with the XCOPY of the procexp.exe as many of the SysInternals tools (satisfied our ChangeManagement since this doesn’t require any installation in the production server :) )

  • Start it up…
  • In the View menu, ensure that Show Lower Pane option is checked
  • In the View\Lower Pane View submenu choose DLLs
  • Highlight the relevant BTSNTSvc.exe process in the upper pane
  • Locate your adapter’s runtime assembly and you can get the version details

clip_image002

Process Explore: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

PS: Assemble name has been hidden for companies privacy. And Thanks for Chris Dickson in helping us.

Technorati Tags:

Wednesday 27 February 2008

Oslo, BizTalk Mapper & Surface – Fjord

I came across a very interesting initiative from Microsoft and thought of blog it. It is about Microsoft's Fjord.

Fjord is the code name for the Microsoft Surface integration pieces to the Modeling commitments of Oslo. BizTalk Mapper, a BizTalk component is the first piece of Oslo to be integrated with Surface.

As Oslo’s one of the key focus is going to be on Modeling, I am expecting the orchestration designer can also be integrated with the Microsoft’s surface(lets see). For expression or for the editor requirement, they may come up with Tablet-PC kind of the keyboard in Surface for Orchestration. More surprises and wonders can be expected as part of Oslo.

Microsoft Surface BizTalk Mapper

Fjord – The code name for BizTalk mapper’s integration with Surface. As fjord means a long, narrow bay with steep sides from the top region of the mountains to the sea, the source schema and destination schema on the two sides on the functoids in the BizTalk Map could have resembled as mountains in the two side of the sea. Aptly named.

And another interesting fact about the Microsoft’s Fjord and Mother Nature’s fjord is Norway has got many deep fjords. Again I donn know why Microsoft’s Oslo is more linked with Norway (Norway’s capital is Oslo).

Reference:

http://www.biztalkgurus.com/blogs/biztalksyn/archive/2007/11/29/project-fjord-biztalk-mapper-to-require-surface-in-oslo.aspx

Thursday 21 February 2008

Microsoft OSLO.

Microsoft Oslo Logo OSLO is a codename for the Microsoft’s technical strategy which would provide the platform and tools to make and manage the cross boundaries integrated enterprise applications easily. When they mean easier, they mean by

  • Reducing the development code be 10xth portion and hence 10X increase in productivity.
  • And by hosting the services online, integration and the maintenance of these applications could be made simpler.

(I donn why Microsoft code-named their technical strategy for their next version of SOA after Norway’s capital)

Oslo is a initiative from Microsoft’s CSD – Connected Systems Division., CSD is where service-oriented application platform components of Microsoft like BizTalk Server, WCF, WF, messaging and queuing products, and much of the identity and authorization services, such as Windows CardSpace are created.

Microsoft has targeted to print its footprint on SOA by heavily investing in the five primary areas like Framework, Server, Services, Tools and Repository. And in these areas the strategy would be focused mainly on two key elements: Model driven and Service Based.

Model-Driven:

Microsoft is building a general-purpose modelling language, tools and repository to bridge all the models within an application, moving models to the centre of application development. So they have planned to create a modelling tool which bring the gap existing between the various modelling methodologies used by business analyst, architects, developers and non-it professionals who provide requirements to IT. We would be the more mature universal modelling editor.

Microsoft Oslo's ModelDriven

Service-Based:

Continue to build on our service-oriented architecture (SOA) platform spanning client, server and cloud. BizTalk Services "1", which will feature messaging, identity and workflow for hosting composite applications

Microsoft Oslo's ServiceBased

The first version of “Oslo” will be delivered through the next versions of our application platform products such as those code-named Microsoft Visual Studio “10,” Microsoft System Center “5,” BizTalk Server “6,” BizTalk Services “1” and Microsoft .NET Framework “4.”

Microsoft Oslo's Delivering Vision

In short Oslo would enable us to simplify modelling, developing, maintenance of enterprises integrated applications.

References:

Microsoft Oslo: http://www.microsoft.com/soa/products/oslo.aspx

Whats Oslo: http://blogs.msdn.com/asmitaw/archive/2007/12/27/whats-oslo.aspx