Fog Creek Software
Discussion Board




How to develop enterprise level WIn32 app using MS

Hello
For me, enterprise level WIn 32 app consists of 3 layers
1.Client (GUI) stateles (not making actual DB calls, not holding  database sessions to DBMS) and talking to the middle tier;
2.middle tear is app server that implements pooled connections, serves the clients, holds intelligent caché, talks to DBMS, handles conflict resolving, has a provider broadcasts, etc, etc.;
3.DBMS i guess this part is clear;
Problem i see in designing this solution with MSFT tools *only* is the lack of enterprise level app server from MSFT
You can actually build one, using MTS, MSMQ, DCOM and who knows what else, but in order to do it properly you have to have beard, weight 120 kilos or be Don Box (this is a joke), but the point I am trying to make is that it is not easy to build reliable app server with MSFT offerings, as opposed to using Jboss, WebLogic or something similar

Am I right in my assumptions or I am terribly off the mark?

Thanks for reading

Seemore
Wednesday, January 07, 2004

hrm...good question.  What is microsoft's recommended practice for distributing the middle layer across multiple servers.  I'm curious too.  I like dotnet, but I really wouldn't know what to do.

vince
Wednesday, January 07, 2004

I may be slightly (completely?) ignorant, but it was always my understanding that the reason Microsoft has technologies like "MTS, MSMQ, DCOM " built into windows is because using these technologies you basically end up with exactly what your average J2EE app server gives you.

And now using things like ASP.Net webservices etc, you can run the webservices layer on as many servers as you want (i.e. distributed) and they can share a single state server (based on SQL 2000) if state is required for your application.

Or am I completely mistaken on my assumptions and understanding of what services your average J2EE server provides?

Chris Ormerod
Wednesday, January 07, 2004

use COM+ 1.5 for middle tier to distribute load

na
Wednesday, January 07, 2004

I think this interview with Steve Mills, senior VP and group executive with IBM Software Group nicely answers the question. 

http://www.microsoft-watch.com/article2/0,4248,1420534,00.asp

"Microsoft Watch: But do you think Microsoft is trying to do what IBM is, with its WebSphere model, with Integrated Innovation? Or not exactly?

Mills: Not exactly. Architecturally, they have a hard time with WebSphere. It's a foreign body. Not only do they not do it, they actually don't want to do it.

ADVERTISEMENT

One of the first principles at Microsoft is the operating system is the control point....the OS is the session-control service. But WebSphere says I am going to take over supervisory control, user connection, session control, arbitration, back-end connection, database connection. The database actually is a passive entity in the WebSphere model. So they really don't like the WebSphere model. If they did, they would have let Jim Gray loose to go build a real MTS (Microsoft Transaction Server), instead of what they built.

Who is Jim Gray? (If You Need Ask)

We love the WebSphere model because we love IMS and CICS. This is the favorite IBM model because we love this layered architecture that, in the distributed world, gives us OS insulation. So we make it portable and get a lot of derivative benefit from the model in the distributed computing environment, beyond what we got out of it in the mainframe environment."

Mike
Wednesday, January 07, 2004

Thanks Mike  for the link
.. If they did, they would have let Jim Gray loose to go build a real MTS (Microsoft Transaction Server), instead of what they built.

Who is Jim Gray? (If You Need Ask)
http://www.research.microsoft.com/~Gray/ ...

I knew it. You have to have a beard in order to find your way through MTS up until common sense App server :-)

Seemore
Wednesday, January 07, 2004

IBM is just sour they can't make it past Gray and the COM+ gang in TPC-C http://www.tpc.org/tpcc/results/tpcc_perf_results.asp?resulttype=noncluster

Just me (Sir to you)
Wednesday, January 07, 2004

Jim does look like the stereotypical Unix guru doesn't he.

Lies, damned lies, and benchmarks (TPC-C)

Mike
Wednesday, January 07, 2004

I think what the person from IBM is getting at is that they developed their stuff up a level of abstraction away from the OS.  This is great for them and for most enterprises as they have a very mixed envrionment.  With Microsoft it has to run on Windows.  IBM understands that companies don't run all Windows. 

Mike
Wednesday, January 07, 2004

> With Microsoft it has to run on Windows.  IBM understands that companies don't run all Windows. 

And ultra-obviously, it's in Microsoft's interest to tie the platform to Windows and IBM's interest to have it be independent.

It always amuses me that many choices that are essentially political are defended in technical terms.

Portabella
Wednesday, January 07, 2004

But IBM could effectively have sell you all the servers and software to run a Fortune 100.  Microsoft can't.  They have no Unix, they have no mainframes or AS/400 and no app servers that run on multiple platforms.  Sure IBM has a self interest in what they promote, just like Microsoft.  The difference is IBM can execute, Microsoft can blow smoke up your ass.

Mike
Wednesday, January 07, 2004

You're not terribly off the mark. But I wouldn't say the other non-microsoft platforms are any better.

Whether or not to use COM+/ES is a thorny subject with no easy answer, that's why they pay us the big bucks :)

Steve
Wednesday, January 07, 2004

Come on guys, give some details! I'm really curious.  I understand that microsoft has stuff like DCOM, and now Remoting( ?) and Webservices, what i'm curiousis how they're supposed to be used in a distributed enviorment.  In J2EE, you can distribute hte middle layer using a number of methods, either "remoting" EJBs or having a distributed cache like structure.  What does MS recommend?  I don't see how webservices are the transport method of choice for intra-server communication.  I just developed a sinlge tier ASP.NET solution (on the side from my primarly java job), using datasets for my middle layer.  After thinking about it, i'm clueless on how I would scale my app across multiple servers (thank goodness that it won't need to be done).  Any thoughts appreciated.

vince
Wednesday, January 07, 2004

Vince,

You would use remoting to scale the .Net classes accross different servers, although I don't know if it is really scaling because as far as I know you have to specify exactly which server will be running that component. However, it may be possible to implement some sort of "round robin" remoting that would use a different server on each call?

Chris Ormerod
Wednesday, January 07, 2004

*  Recent Topics

*  Fog Creek Home