Click here to Skip to main content
15,886,724 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
In our company we have an enterprise windows application, Now we have decided to publish some of the business services on the web and let web clients to work with our enterprise application. How we can do it ? with considerations: - The web clients have low speed Internet. - The Web application is going to support some of the business use cases. - We need high security for using the services. - We use C#.net , and Sql server and asp.net

We are thinking of two solutions :



Solution 1:
picture for first model


Solution 2
picture for second model



which model is better ? do you have another solution?

Thanks for your attention...
Posted
Comments
RaisKazi 18-Nov-13 16:37pm    
Your architecture is not at all scallable. Service Oriented Architecture will solve the problem effieiently?
saeed_shokoohi 18-Nov-13 16:47pm    
sure , but the question is about where the web application should be hosted ? on the web or local network where the windows app and its database is located.
RaisKazi 18-Nov-13 16:53pm    
Web App can be on same or different WebServer(machine) within same LAN(for better accessibility). It all depends on how you are going to scale your System in future. Have a WebService(Preferably WCF) to hold your business logic. You may search on Google for SOA architecure.
saeed_shokoohi 18-Nov-13 17:03pm    
tanx , and how about the performance considerations? which model may have better performance for web clients ?

1 solution

You have only one problem: you probably think that architecture is drawing boxes, clouds and connecting lines, with some captions. It is not. Architecture is fist of all some thinking. And this is something which you pretty much missed.

Let's start from the second picture, because this is the apparent gibberish. You put a caption "LAN" on right side, and one element inside is called "Web App". Am I missing something? Are you going to convince us that "World Wide Web" can be aware of some "Web App" placed in "LAN"? I don't think so. Note that in that dreaded client-server model, the active part is only the client, and the server is listening, and passive, acting only on request of the clients. A client on the LAN connected to Internet can send requests to the Web application exposed to internet, but nothing on the Internet cannot request anything in the LAN, unless it is connected to the same LAN.

The first picture is less obvious, but also: what is "Windows App"? Do you understand that is should be a service application? (I don't know what you meant to say, maybe just "some application on Windows OS", but "Windows Application" is usually used to mention some application with UI.) "Windows" is pretty much irrelevant here. The service, to be usable from both the Web and LAN, should be totally abstracted from the OS. Technically, this is quite possible, even with C# only. Also, did you think about CLR clients not connected to your LAN. You could have thinner Web clients (browser based) and thicker CLR clients, with extra capabilities and or performance? One thing you should realize is: Web imposes draconian limitations on the functionality, due to stateless nature of HTTP protocol and domination of client-server model. Before drawing what is connected to what, you should learn the ideas of working under these limitations. So far, without some information on what is the "application" and "clients", looking at this picture and even drawing something similar does not make much sense. But very basically, first picture means starting to think in right direction.

Please understand: not that your "models" are good or not, correct or not. They are not models at all. Considering those pictures is just not serious enough. What to advise? Well, before trying to "draw" the architecture, do some technological research and some basic prototyping, as simple as possible (but not simpler :-)).

—SA
 
Share this answer
 
v5
Comments
RaisKazi 18-Nov-13 18:46pm    
Sure, 5!
Sergey Alexandrovich Kryukov 18-Nov-13 18:51pm    
Thank you, Rais.
—SA
saeed_shokoohi 19-Nov-13 10:32am    
first of all , I want to thank you for putting time for reading my question , writting this long comment and giving me the right advices. while it is along time which I am developing I am feeling like : shame on me!
How ever, it is better to explain more.
Windows application : I mean a windows based application which has a service layer and has published on a server in the LAN.
as you said :"nothing on the Internet cannot request anything in the LAN "
is it true even if a server on the LAN have a valid IP and the web based app which is deployed on internet knows its IP?
Sergey Alexandrovich Kryukov 19-Nov-13 10:40am    
Please don't feel shame. Just the opposite: your constructive approach to someone's criticism is your power.
Yes, LAN, if set up properly, is totally isolated from bigger network. A user of LAN can send request to a listening program and get response (or even establish a channel and exchange data in all direction, of, say, TCP is not blocked by firewalls), but a program on Internet cannot connect to listener in the LAN, not even by IP address. That IP addresses are on local address space, cannot be addressed from outside...
—SA
saeed_shokoohi 19-Nov-13 10:54am    
tanx bro
I'm going to have more research on these topics as you said.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900