The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Today and tomorrow: Will Indigo heal...? Indigo, oh well - what about COM+?

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Christian Weyer

Posts: 616
Nickname: cweyer
Registered: Sep, 2003

Christian Weyer is an independent Microsoft MSDN Regional Director and expert for Web services.
Today and tomorrow: Will Indigo heal...? Indigo, oh well - what about COM+? Posted: Mar 9, 2005 3:00 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Christian Weyer.
Original Post: Today and tomorrow: Will Indigo heal...? Indigo, oh well - what about COM+?
Feed Title: Christian Weyer: Web Services & .NET
Feed URL: http://www.asp.net/err404.htm?aspxerrorpath=/cweyer/Rss.aspx
Feed Description: Philosophizing about and criticizing the brave new world ...
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Christian Weyer
Latest Posts From Christian Weyer: Web Services & .NET

Advertisement

OK, sorry. No code this time, but quite useful information, I think.

Rick Strahl asks about the relationship between COM, COM+ and Indigo,

First: no, Indigo does not communicate on the wire using DCOM.
But Microsoft provides the ability to expose (even existing) COM+ services as Indigo services without requiring any code change in the COM(+) implementation on the server side. You just need to run a tool and a corresponding 'invisible' Indigo service is built for you. This service exposes the COM+ component to the wire, as an Indigo style web service.

But there is still the 'other direction'. What about COM(+) calling Indigo services? For this, we may use the special Indigo moniker to enable COM developers (like VB6, VBA etc. geeks) to communicate with the Indigo services in a COM-like but Indigo-natural manner.
So let's go a bit into detail.

COM+ application as an Indigo service

It is a tool thing. Using Indigo’s COM+ integration feature, a developer is able to do this without making any code changes. Just run the Indigo integration utility on the appropriate application interfaces. When the COM+ application is restarted, the appropriate Indigo service will be started and there will be a rich functioning Web service interface to the existing business logic - which of course does not mean that one should expose *any* COM application via an ‘automatic Web services interface’… just like the checkbox feature in COM+ to enable ‘SOAP functionality’ (which uses .NET Remoting in fact).

With this feature developers are able to specify the binding, transport and address choices, determining where and how the service will be offered - all just through manipulation of a standard Indigo configuration file. No new code. Where the COM components within the application support or require transactions, the Indigo service will convey that requirement and support it on incoming request messages. Where the components within the application require authentication and authorization (i.e. Windows identity and thus COM+ roles), the Indigo service will convey that (authentication) requirement and enforce it (the authorization) on incoming request messages.

The behavior of the services fronting the COM+ application are provided by an automatically started Indigo listener and controlled by a standard Indigo configuration file.

By default, the service will mimic the RPC-like behavior of DCOM with reliable request-reply sessions using Indigo’s shared session instancing. The default binding, transport and address details come from a generated (at COM+ application/interface opt-in time) config file. Also, to mimic a secure DCOM deployment Windows authentication and encryption will be required by default. Different behaviors are only a config edit away.

COM client calling Indigo services

With the deployment of Indigo/Web services within their organization, both built on Indigo or other technology stacks (like IBM WebSphere, BEA WebLogic, or Axis), developers will be faced with difficult choices and significant challenges when deciding how to bring this newly developed functionality into the widely deployed COM based environments such as Office/Excel, ASP, VB6 or script. Using the Indigo service moniker, a simple approach to integration is provided. The execution of the moniker builds upon a local definition of the Web service interface – there are a few ways top to get this but one of the easiest is for developers to point the Indigo svcutil.exe tool at the URL of the service's metadata exchange endpoint (/MEX). This creates a client proxy and service interface details.
After ensuring that the type library from that assembly is marked
ComVisibleand referencing it from a development environment e.g. VB project, we are able to use the service moniker with the GetObject function to construct a proxy instance for that service within our 'legacy' code.
Just like this (OK, a bit of ‘old’ code, at least):

Dim MathProxy As IMathService
Dim result As Integer

Set MathProxy = GetObject( _
  "service:address=http://localhost/MathService, _
  binding= wsProfileBinding, _
  bindingName=Binding1")

result = AddService.Add(3, 5)

The COM Service Moniker takes most of its wire functionality directly from the standard Indigo client infrastructure and its binding configuration from a simple config file. Additionally, rather than simply picking up the current identity, the new IChannelCredentialsinterface on the proxy instance supports specifying credentials using a range of broadly interoperable mechanisms e.g. username/password or X509 certificates from a file or store.
Also, subject to configuration, when operating within a transaction scope, the transaction will flow using standard Indigo ServiceModel transaction mechanisms with the use of WS-AT on the wire where appropriate.

A big thanks goes to Microsoft's Andy Milligan for helping me putting together this information.

OK, and now off to the CeBIT computer show for the whole next week – then Florida J.


Read: Today and tomorrow: Will Indigo heal...? Indigo, oh well - what about COM+?

Topic: ASP.Net 2.0 Roadshow in Dublin Previous Topic   Next Topic Topic: Winform Controls

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use