mfg/pro on Unix, .Net Open Client with WCF webservice on Windows - How to connect?

Sjaka

New Member
We are working on a WCF webservice that uses .Net open client to integrate mfg/pro with a cloud based CMS. Our setup is as follows:

* mfg/pro (and Progress) is running on Unix,
* WCF webservice (that communicates with CRM and mfg/pro) is hosted on IIS in a Windows box.

During development, the sample Progress database, OE Appserver and WCF webservice were all deployed on a single windows box, hence it wasn't a issue then.

Currently we've the OE Appserver running on the Windows machine. Is the Appserver suppose to run on the Windows machine or Unix box where mfg/pro is running?
 

TomBascom

Curmudgeon
App servers typically run on the server that runs the db. This is usually done to support a shared memory connection to the database which is generally going to be a lot faster than a network connection.

Occasionally an app server is deliberately deployed on Windows because the code calls Windows-specific DLLs and is therefore tied to that particular OS.
 

Sjaka

New Member
Thanks for your response Tom. As I mentioned in the question, it is a Microsoft's WCF webservice that is using .NET open client and OE Appserver to talk to Progress. The webservice is responsible to pass data to/from the CMS to mfg/pro. In such a scenario, is it preferable to deploy the Appserver on Windows or Unix?

Can you please suggest an alternative to IIS?
 

TomBascom

Curmudgeon
If the app server code directly calls windows DLLs then you have no choice, you must deploy it on Windows. Otherwise deploy it on the server hosting the db.

Apache. Or a thousand other things.
 

RealHeavyDude

Well-Known Member
The .NET Open Client uses a TCP network connection ( host and port ) to connect to the AppServer. From that point of view it is not relevant on which operating system the AppServer is running - given that the OS is supported by Progress of course.

In almost all casese you may want to host your AppServer on the same machine which hosts the database for performance reasons. The perfromance reason is the ability to connect via shared memory to the database instead of the network layer. In my experience a shared memory connection provides roughly 10 times or more data throughput than a network connection.

If you host the database on a Windows box then you should host the AppServer there. Personally I would not host a Progress server backend on a Windows backend unless I am forced to do so.
 

TomBascom

Curmudgeon
Unless the code running on the app server calls DLLs. In that case the app server code is tied to a specific OS.
 
Top