Welcome! Log In Create A New Profile

Advanced

Information needed on 3-tier architecture

Posted by Prolay Sarkar 
Prolay Sarkar
Information needed on 3-tier architecture
December 30, 2008 02:09PM
Hi,

We are evaluating WinDev for our product development. We are finding it difficult to divide our application into a 3-tier setup. We want that the client should communicate with the application server and app server in turn will get data from the Database server. Is it possible to develop all the three layer objects in the same project and divide it at the time of deployment (Like we do in a client/server architecture). How efficient will it be to maintain the development.


Environment :
----------------

In deployment environment there is
1. Client for User Interface(UI Related DLLs),
2. Application Server for Functional Components(Logic Related DLLs), Web Service and Database Objects(Analysis).
3. Data-Server for Database (SqlServer or HyperFile)


Problem :
-----------

1. How to decide which part of the setup components should be the part of Client setup and which part comes in Application Server setup.
2. How will the Client know that where is the Application Server located and which port it should use to communicate. or How is the IP Address of the Application server defined at the Client level.
3. How will be the setup for such deployment environment.


If someone can provide any specific reading material or sample project to help in the above issue would be of great help.
Jimbo
Re: Information needed on 3-tier architecture
December 30, 2008 05:51PM
Hi, this seems to me a bit weird.

Just my 2 cents: With queries, HF C/S server does not transfer all data over the network - it transfers only the result of the query! Just make your application based on queries (not on browsing the databases using HReadFirst ... HReadNext !) and you have what you want. What you want to do is an unnecessary performance killer ..

Regards, Guenter

Prolay Sarkar
Re: Information needed on 3-tier architecture
December 31, 2008 05:56AM
Let me re-frame my question

CLIENT COMPUTER <----> APPLICATION SERVER <----> DATABASE
(50 computers) (1 server) SERVER

{ this contains the files related to { files for process }
presentation }



Now, if I have a change that has to be made in the business logic I just have to update the change in the APPLICATION SERVER (1 server) not on all the 50 client computers. Connection string to the database should be on the application server not on the client computers and client computers will have only connection to Application Server.

Regards
Prolay
Prolay Sarkar
Re: Information needed on 3-tier architecture
December 31, 2008 06:00AM
Sorry for the formatting

Let me re-frame my question

CLIENT COMPUTER (50 computers) <----> APPLICATION SERVER (1 server) <----> DATABASE SERVER

CLIENT COMPUTER - this contains the files related to presentation
APPLICATION SERVER - files for process


Now, if I have a change that has to be made in the business logic I just have to update the change in the APPLICATION SERVER (1 server) not on all the 50 client computers. Connection string to the database should be on the application server not on the client computers and client computers will have only connection to Application Server.

Regards
Prolay
Jimbo
Re: Information needed on 3-tier architecture
December 31, 2008 09:17AM
Hi, I'm definitely not the analyst / designer of your system .. but I think that any changes of the database will more or less be based on requests of the client side. Thus, those changes will have to be seen on the client's computers too. No way to avoid updates of the clients. But ..

.. setup of WinDev programs can be a 'Network Setup'. Applications on clients will be updated automatically without any intervention.

.. if this is a strict LAN environment, you can even keep only *one* client program on the server and use it from all clients. Remember that you can use precompiled windows with WinDev apps - the granularity of your software is much enhanced. Loading times are less. Updates are easy then ..

.. there's the 'Terminal Server' concept for sites of that size. Look into that. Makes client's hardware cheaper and software maintenance is much easier.

.. there's the idea of virtual servers / clients. Look at VMWare.

.. there's the ability of WinDev to build JAVA programs - in W-language! Java programs don't need any installation at all and can be updated on the server only.

Personally, I'd do everything in order to avoid a construction like the devised one. But, once again, it's your responsibility, it's your job.

Kind regards,
Guenter
Prolay Sarkar
Re: Information needed on 3-tier architecture
December 31, 2008 10:22AM
Hi,

thanks for replying!!

Yes I appreciate what you have said. Now the problem is the link between the client (almost 50 computers) and server is a low-bandwidth one(64 kbps, practically it is a bit lower than that). and we have number of branches which will run the same application. So we want to manage it efficiently.

Please help us in redesigning the structure. In such a low-bandwidth line can we use network setup. If yes how efficient it will be and VMWare communication will be heavy on a 64kbps. so what can we do. can we use web-services??

Regards,
Prolay
Al
Re: Information needed on 3-tier architecture
December 31, 2008 10:49AM
Hello Prolay

Sounds like an impossible situation.
Because of the low bandwidth, I think the only possible option is the full version of MS Server 2003 with Terminal Services or some other thin client solution.
(MS SBS will not run term services)

XP Unlimited is a cheaper solution than MS Server and MS Terminal Services
[www.xpunlimited.com]

Regards
Al
Erik Schwarz
Re: Information needed on 3-tier architecture
December 31, 2008 11:01AM
hello,

I am not very familiar with 3-tier, but in the Windev12 help is a page, where this scenario is explained with hints how to do it with Windev.
I think it is based on Web Services for the application layer.
Clients then use Browser or Windev programs. Windev programs may need your own communication developped to exchange data with the application server.

I for myself have another solution. Simple data management, eg reading data records and updating a single or few records, is made by the client, mainly using queries, directly on the database. Data transferred over the network by this way is not more as if you communicate with app server.

All actions, which need heavy data transfer to the database, eg mass updates and extensive calculations, are done by a program which is normally running as a service on a computer, which has fast access to the database. The client then just sends a message to this service which in turn does the work.

Hope this helps

Erik
Jimbo
Re: Information needed on 3-tier architecture
December 31, 2008 11:04AM
Quote
Prolay Sarkar
Hi,

thanks for replying!!

Yes I appreciate what you have said. Now the problem is the link between the client (almost 50 computers) and server is a low-bandwidth one(64 kbps, practically it is a bit lower than that). and we have number of branches which will run the same application. So we want to manage it efficiently.

Please help us in redesigning the structure. In such a low-bandwidth line can we use network setup. If yes how efficient it will be and VMWare communication will be heavy on a 64kbps. so what can we do. can we use web-services??

Regards,
Prolay

Oh, I see. Is this a simple telephone line (with dial-in modems) or do you plan to establish an internet connection from each branch first and then to communicate over the web?
Regards, Guenter
Prolay Sarkar
Re: Information needed on 3-tier architecture
December 31, 2008 11:49AM
Hi,

It is not over a internet connection. You can look at it as a low-end LAN connection. Application server will have locally routed ip( i.e it is part of the local network)..

Regards...Prolay
Jimbo
Re: Information needed on 3-tier architecture
December 31, 2008 01:49PM
Hi Prolay,
we offer distributed POS systems and can transmit data over phone lines, LAN or web by compressing the data in ZIP-files, calculate / attach a check sum and transmit / receive those files by FTP. This enables the cash registers in the branches to work independently and there's an isolation in regards to file structure. ZIPing the files reduces their size. The trick is to have an NT-service (not a web service!) running in the background of the cash registers and of the server which updates their files according to instructions in the file. New prices and new keyboard layouts have a certain date / time for the update, for instance.
Kind regards,
Guenter

Arie
Re: Information needed on 3-tier architecture
December 31, 2008 01:57PM
If the middle-tier is not to complex, you can use the "stored procedures" of your database as the middle-tier. Then your database-server = application-server.
HFCS does support this, but MSSQL/MYSQL/Oracle are better on this one...

Arie
Arie
Re: Information needed on 3-tier architecture
December 31, 2008 02:10PM
Guenter, not really about the 3-tier subject, but:
Do you use WD-replication to distribute your data? I'm just wondering if WD-replication works. I need something like this soon.

Arie
Peter Raines
Re: Information needed on 3-tier architecture
January 01, 2009 08:46AM
WinDev supports a standard 3-tier architecture quite nicely, but you'll have to create separate projects for the the user interface and app server, which is no big deal.

-Peter
Jimbo
Re: Information needed on 3-tier architecture
January 01, 2009 09:30AM
Quote
Arie Mars
Guenter, not really about the 3-tier subject, but:
Do you use WD-replication to distribute your data? I'm just wondering if WD-replication works. I need something like this soon.

Arie

Hi, we cannot use replication, because files in the POS systems of the branches can / will have different contents. There may not be the same prices, the same sales items, the same layouts of the touch screens, even the printed slips may have different logos. So, in this case, replication is no good. No, sorry, we did not try replication .. Guenter
Prolay Sarkar
Re: Information needed on 3-tier architecture
January 02, 2009 05:44AM
Quote
Peter Raines


hi, can u explain me the communication between the UI and the app server. If i have a forms in the UI project and the analysis files in a different project, how can i link the controls of the ui to that. What should we use ??
Peter Raines
Re: Information needed on 3-tier architecture
January 02, 2009 08:55AM
If your UI is speaking directly to the database, you are not utilising a 3-tier architecture.

-Peter
Prolay Sarkar
Re: Information needed on 3-tier architecture
January 02, 2009 09:17AM
Hi,

The analysis file, queries, classes will all come in the middle tier, am i right??

Regards,
Prolay
Prolay Sarkar
Re: Information needed on 3-tier architecture
January 02, 2009 11:24AM
Quote
Posted by: Peter Raines (IP Logged) Date: January 1, 2009 08:46AM WinDev supports a standard 3-tier architecture quite nicely, but you'll have to create separate projects for the the user interface and app server, which is no big deal. -Peter


Hi,
Please can u tell us how to transfer a class object from one project to the another. for example i have a screen with employee id and name at the ui and a class related to it. can i link the fields to a class object. Then after creating a object i will serialize it and send it to to the other computer there i will deserialize it and use it to insert into the database.

Can anyone give his contact no. or chat on gmail??

Regards
Prolay
Peter Raines
Re: Information needed on 3-tier architecture
January 03, 2009 09:48PM
Yes, the analysis, queries etc will feature in the middle tier. How you go about transferring i/o from the UI to the application tier is up to you. There are many possibilities here, and will pay dividends down the road if you take the time to think it through now.

-Peter
Peter Holemans
Re: Information needed on 3-tier architecture
January 06, 2009 12:10AM
Quote
Peter Raines
Yes, the analysis, queries etc will feature in the middle tier. How you go about transferring i/o from the UI to the application tier is up to you. There are many possibilities here, and will pay dividends down the road if you take the time to think it through now.

-Peter

Hi,

I agree. Real 3-tier will require ideally serialisation/deserialisation using (pre14) WinDev. Please note however that 3-Tier is a best practice only for apps which have large scalability and distributed processing requirements. The additional effort for 3-Tier (especially in later-on maintenance aside from additional design complexity like e.g. distributed transactional processing and scoping) needs to be taken into account wisely. Only go full 3-Tier if your app requires such an architecture for the above mentionned reasons. For real heavy processing 3-Tier architectures I wouldn't recommend WX either. There are namely better (commercial and open source) tools and frameworks for that on the market.

However there is light at the end of the 3-Tier tunnel: for intuitive and fast 3-Tier programming, I would certainly await version 14 wich provides data binding with the UI at class, instance, structure and other complex type levels allowing to limit your assignment statements on the members to just two statements: ScreenToSource and SourceToScreen. And it is just this kind of rapid development features together with the hiding of the underlying complexity that makes us uwer WinDev. I recommend to use WinDev where it shines and for the application architectures it best suits with... but always with the WX development philosophy in mind.

Just my 2 cents,
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: