Loading ...
Sorry, an error occurred while loading the content.

Re: [service-orientated-architecture] Microsoft View of SOA

Expand Messages
  • Steve Jones
    Maybe its just that I m used to a J2EE/RMI/CORBA type of world but reading through, and having used it, that it still looks like I have an application where I
    Message 1 of 13 , Jan 31, 2007
    • 0 Attachment
      Maybe its just that I'm used to a J2EE/RMI/CORBA type of world but reading through, and having used it,  that it still looks like I have an application where I choose to expose several endpoints rather than being what I think of as a container model.  Part of this is conception v implementation.  Reading through J2EE, Spring, CORBA, Jini etc etc they all stress the idea of these "independent" entities that co-ordinate together, on the MS side there isn't the same literature or innovation.  This is possibly more a thinking rather than a technology difference (I'm not convinced its not both) but I've observed the same behaviours in many different MS projects over the years.

      Googling for .net lightweight container http://www.google.co.uk/search?hl=en&safe=off&rls=GGGL%2CGGGL%3A2006-12%2CGGGL%3Aen&q=.net+lightweight+container&btnG=Search&meta= doesn't exactly inspire confidence as lots of the hits are Java related.

      I don't want to get into a language flame war here (I work both sides of the divide) but I do not see Microsoft as having pioneered anything around containers, lightweight or otherwise, the only pieces I've seen is ways to host small applications and choose what you expose.  There is a big difference between the two IMO.





      On 31/01/07, Anne Thomas Manes <atmanes@...> wrote:

      WCF does use a container model, referred to as the "service model", and a container is referred to as a "service host". WCF supports mutliple types of service hosts. In fact, an application can act as its own service host.

      Some references regarding the WCF Service Model and service hosts:
      http://blogs.msdn.com/wenlong/archive/2005/11/14/492383.aspx
      http://msdn2.microsoft.com/en-us/library/aa480201.aspx#progindig3_topic4

      Anne



      On 1/31/07, Steve Jones < jones.steveg@...> wrote:

      My memory is equally shaky, and you are right that if you think of the OS as the app server then the DLLs are the shared code and the COM+ are the executed code.  This really isn't lightweight however by any definition! In reality I've tended to see COM+ deployed as a series of applications which have common code that they share, but which is copied between COM+ objects rather than shared via the DLL.  The difference with EJB deployment is the introduction of the EAR which made (at least in the experiences I had with other peoples COM+ stuff) it much simpler and the container was more of a "invocation" thing rather than just an application (which is what I found with COM+).  In other words I found COM+ much more similar to a J2EE App Server than I did to EJBs.

      This of course has disappeared with the CLR which doesn't, at least that I can find, have any sort of container model at all.  Personally when I look at .NET and Java projects I don't see .NET people thinking in terms of containers and independent services, they tend to think in terms of "application" with things that it exposes.  Not sure why this is but its no suprise that all of the component and container work in the last 5 years has been out of the Java side of the fence.

      Is a container mentality a pre-req to SOA?




      On 31/01/07, Dennis Djenfer <dej@...> wrote:

      Steve Jones wrote:

      Servlets v ASP as a comparison is fair, but what the article was talking about was service containers, i.e. the bits at the backend and COM+ really isn't the same as EJBs in that it doesn't have the packaging and deployment elements. 

      It was 10 years since I worked with COM and DCOM, but as far as I recall you had to deploy a COM component into a container that took care of issues like threading, security and transaction. Correct me if I'm wrong (it was a long time ago), but with COM+ Microsoft built the container into the Windows OS. The difference compared to EJB is that you don't have the possibility to choose a container, because it's built into the OS, and you don't have a deployment descriptor. However, you still need to configure each component, but you have to do it from a management console. I would say that both COM+ and EJB are technologies built with a container as a prerequisite.

      // Dennis

      WCF isn't really a container either, it makes it easy to call things but the deployment is still "one big blob" so its not really a container approach like Spring or EJB.  The best thing about SCA is that its a lifecycle container not just an invocation framework. 

      This is quite a problem from an SOA implementation perspective as the applications might look okay from the outside but there isn't anything which enforces the architecture internally.

      Steve


      On 31/01/07, Anne Thomas Manes <atmanes@... > wrote:

      COM+ (formerly MTS), ASP, ASP.NET are traditional container models analogous to EJB and Servlets.
      WCF and WF use a lighter-weight container model that is native to .NET (no separate container required).

      Anne



      On 1/30/07, Steve Jones < jones.steveg@...> wrote:

      [snip]

      > What are your thoughts on Service Component Architecture?
      > DeVadoss: I see SCA as being more of a reaction to the heavyweight
      > nature of J2EE and the big container model. I see SCA as being more of
      > an acknowledgment of the lightweight models like Spring. Certainly if
      > you look at our container models going back, the lightweight nature of
      > the container model is something we've been able to do for a very long
      > time. I think from a mindset perspective, SCA is more of the community
      > walking away from J2EE and the complexity and coming more into our
      > view of the world.

      Can anyone else name a lightweight _container_ model for .net? I can
      see the invocation stuff like WCF but I just don't see these
      lightweight containers he is talking about. And it appears that I'm
      not the only person missing where MS has provided this
      http://msdn.microsoft.com/msdnmag/issues/05/09/designpatterns/default.aspx#S6

      I wonder how this view will change at MS now that Don Ferguson, who
      appeared very pro-SCA while at IBM, is senior at Redmond.




      No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.432 / Virus Database: 268.17.17/661 - Release Date: 2007-01-30 23:30




    • Udi Dahan
      Having followed Microsoft through their whole SOA adventure, the history goes something like this: At first, MS wasn t willing to admit there was SOA .
      Message 2 of 13 , Feb 1, 2007
      • 0 Attachment

        Having followed Microsoft through their whole SOA adventure, the history goes something like this:

         

        At first, MS wasn’t willing to admit there was “SOA”. Instead, they focused their efforts around Service Orientation as something separate. This quite clearly belied their developer focus as did their Web Service tooling. When the hype around ESBs grew, MS once again were indifferent putting out no new guidance or even tools. The industry’s insistence not to grow bored of SOAs and ESBs, coupled with the increasing importance of the analysts in these areas caught MS off guard. All of a sudden, the enterprise space that MS was growing so nicely into was (again) challenging them, comparing them to offerings by other major vendors.

         

        Recently, Microsoft has revamped their messaging around SOA with the “ESB Toolkit” offering. Centred on BizTalk and supported by various wizards and whitepapers, the toolkit is Microsoft’s official view of SOA today. WCF plays only a supporting role relative to BizTalk in the toolkit.

         

        As to containers, well, most Microsoft developers don’t know what they are, at least in terms of .net. While technologically many parallels may exist between the platforms, the mindset of developers in the camps could not be considered close to that. Object/Relational mapping has made a few inroads in .net land, but nothing compared to what’s going on in Java land. It is even more drastic when talking about IoC/DI containers. Messaging is also not very well known due, in part or in whole, to the simplistic capabilities of MSMQ and Microsoft’s previous desires to kill it off. In all of these respects I see a disadvantage to Microsoft based shops on SOA projects.

         

        I don’t like ending on a doom-and-gloom note, but that’s the state of things at the moment. Maybe the “ESB Toolkit” thing will eventually turn things around.

         

        --
        Thank you,

        Udi Dahan - The Software Simplist
        .Net Development Expert & SOA Specialist
        Microsoft Solutions Architect MVP

        email: Udi@...
        web: http://www.UdiDahan.com
        mobile: +972-522-888-426

      • Alex Hoffman
        I think the important point is that containers are not required to produce an application. Neither are serviced components or indeed any other pattern.
        Message 3 of 13 , Feb 3, 2007
        • 0 Attachment
          I think the important point is that "containers" are not required to produce an application.  Neither are "serviced components" or indeed any other pattern.  The Java model is only one view on how to get complex software written.

          That statement is reflected in Microsoft .NET, which includes both low code libraries for consumption by developers code, as well as higher level abstractions such as ASP.NET and ADO.NET.  An overall container/serviced components architecture is not included or prescribed.

          That being said, individual parts may implement and use a container model.  For example. .NET Windows Forms includes a complete hierarchical container model that implements the "service locator" pattern that any .NET developer can use.  However, that was included largely to support functionality required in one of Microsoft's own products - Visual Studio.

          In other words, .NET doesn't specifically prescribe architectural patterns and styles for writing complex software, rather it provides a platform that enables any architectural pattern or style - simple or complex.

          Sadly however, the vast majority of .NET applications follow a RAD "window on data" style - they do not model a complex domain.  For the majority of the .NET community, that simple style is all that exists.  But that's a reflection of the community - not the platform.

          Alex Hoffman


          On 2/1/07, Steve Jones <jones.steveg@...> wrote:
          Maybe its just that I'm used to a J2EE/RMI/CORBA type of world but reading through, and having used it,  that it still looks like I have an application where I choose to expose several endpoints rather than being what I think of as a container model.  Part of this is conception v implementation.  Reading through J2EE, Spring, CORBA, Jini etc etc they all stress the idea of these "independent" entities that co-ordinate together, on the MS side there isn't the same literature or innovation.  This is possibly more a thinking rather than a technology difference (I'm not convinced its not both) but I've observed the same behaviours in many different MS projects over the years.

          Googling for .net lightweight container http://www.google.co.uk/search?hl=en&safe=off&rls=GGGL%2CGGGL%3A2006-12%2CGGGL%3Aen&q=.net+lightweight+container&btnG=Search&meta= doesn't exactly inspire confidence as lots of the hits are Java related.

          I don't want to get into a language flame war here (I work both sides of the divide) but I do not see Microsoft as having pioneered anything around containers, lightweight or otherwise, the only pieces I've seen is ways to host small applications and choose what you expose.  There is a big difference between the two IMO.






          On 31/01/07, Anne Thomas Manes < atmanes@...> wrote:

          WCF does use a container model, referred to as the "service model", and a container is referred to as a "service host". WCF supports mutliple types of service hosts. In fact, an application can act as its own service host.

          Some references regarding the WCF Service Model and service hosts:
          http://blogs.msdn.com/wenlong/archive/2005/11/14/492383.aspx
          http://msdn2.microsoft.com/en-us/library/aa480201.aspx#progindig3_topic4

          Anne



          On 1/31/07, Steve Jones < jones.steveg@...> wrote:

          My memory is equally shaky, and you are right that if you think of the OS as the app server then the DLLs are the shared code and the COM+ are the executed code.  This really isn't lightweight however by any definition! In reality I've tended to see COM+ deployed as a series of applications which have common code that they share, but which is copied between COM+ objects rather than shared via the DLL.  The difference with EJB deployment is the introduction of the EAR which made (at least in the experiences I had with other peoples COM+ stuff) it much simpler and the container was more of a "invocation" thing rather than just an application (which is what I found with COM+).  In other words I found COM+ much more similar to a J2EE App Server than I did to EJBs.

          This of course has disappeared with the CLR which doesn't, at least that I can find, have any sort of container model at all.  Personally when I look at .NET and Java projects I don't see .NET people thinking in terms of containers and independent services, they tend to think in terms of "application" with things that it exposes.  Not sure why this is but its no suprise that all of the component and container work in the last 5 years has been out of the Java side of the fence.

          Is a container mentality a pre-req to SOA?




          On 31/01/07, Dennis Djenfer <dej@...> wrote:

          Steve Jones wrote:

          Servlets v ASP as a comparison is fair, but what the article was talking about was service containers, i.e. the bits at the backend and COM+ really isn't the same as EJBs in that it doesn't have the packaging and deployment elements. 

          It was 10 years since I worked with COM and DCOM, but as far as I recall you had to deploy a COM component into a container that took care of issues like threading, security and transaction. Correct me if I'm wrong (it was a long time ago), but with COM+ Microsoft built the container into the Windows OS. The difference compared to EJB is that you don't have the possibility to choose a container, because it's built into the OS, and you don't have a deployment descriptor. However, you still need to configure each component, but you have to do it from a management console. I would say that both COM+ and EJB are technologies built with a container as a prerequisite.

          // Dennis

          WCF isn't really a container either, it makes it easy to call things but the deployment is still "one big blob" so its not really a container approach like Spring or EJB.  The best thing about SCA is that its a lifecycle container not just an invocation framework. 

          This is quite a problem from an SOA implementation perspective as the applications might look okay from the outside but there isn't anything which enforces the architecture internally.

          Steve


          On 31/01/07, Anne Thomas Manes <atmanes@... > wrote:

          COM+ (formerly MTS), ASP, ASP.NET are traditional container models analogous to EJB and Servlets.
          WCF and WF use a lighter-weight container model that is native to .NET (no separate container required).

          Anne



          On 1/30/07, Steve Jones < jones.steveg@...> wrote:

          [snip]

          > What are your thoughts on Service Component Architecture?
          > DeVadoss: I see SCA as being more of a reaction to the heavyweight
          > nature of J2EE and the big container model. I see SCA as being more of
          > an acknowledgment of the lightweight models like Spring. Certainly if
          > you look at our container models going back, the lightweight nature of
          > the container model is something we've been able to do for a very long
          > time. I think from a mindset perspective, SCA is more of the community
          > walking away from J2EE and the complexity and coming more into our
          > view of the world.

          Can anyone else name a lightweight _container_ model for .net? I can
          see the invocation stuff like WCF but I just don't see these
          lightweight containers he is talking about. And it appears that I'm
          not the only person missing where MS has provided this
          http://msdn.microsoft.com/msdnmag/issues/05/09/designpatterns/default.aspx#S6

          I wonder how this view will change at MS now that Don Ferguson, who
          appeared very pro-SCA while at IBM, is senior at Redmond.




          No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.432 / Virus Database: 268.17.17/661 - Release Date: 2007-01-30 23:30





        Your message has been successfully submitted and would be delivered to recipients shortly.