4D Application as a 3-tier System

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

4D Application as a 3-tier System

4D Tech mailing list
Hi All,

I have an application running in a hospital environment for a number of years.
In the light of the increasing awareness of data security, the client’s IT in their own words are looking at "redoing the whole 4dcis database onto 2 or 3 tier system where there is a database separation from application layer”

The current setup is a v15 client-server application, with about 80 concurrent client licenses serving users located at 2 separate locations.

As it stands, a 4D application already has a 2-layer architecture being a client-server application.  
We could perhaps enhance it a little to make it a 2-tier environment by moving the segregating the 4D Server software and the 4D structure files (business logic) on to one server and the 4D data files (database) on to a separate server.  Doing that however has no effect on the 4D database architecture, it still remains a 2-layer database architecture.

Apart from re-developing the application into a complete web-based application, how can a 4D application be refreshed into a 3-tier system?

I would like to tap on the collective wisdom of the forum to gather some views on the plausibility of the above.
Thank you.

Regards,
Ronnie
Tarawerkz




**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
As you already know a textbook three tier application would be web based…

HTML/Javascript/CSS - Front End
PHP/JS/ASP… many others - Middleware
MySQL, Oracle etc - Backend

The key points being:
Front end handles the presentation
Middle ware handles the business logic and application flow talks between the front end and any other resources needed
Backend a connection to permanent data usually through SQL

There is no reason that 4D couldn’t be used in all three, but it really doesn’t make sense…
Front End - 4D handling the presentation with screens (but no database nor tables) making calls to the middle layer… and accepting data and navigation from the middle layer (via REST or some other communication)
Middleware - Use 4D code to handle requests from the front end, validate data, handle the controller part (again no database nor tables)… make calls the backend (REST etc. or using v18 ORDA to make direct queries)
Backend - Use 4D structure with data but no code (expose with REST or ORDA)

A couple of possibilities maximizing 4D use:
Web Browser -> 4D middleware server -> 4D backend
Web Browser -> 4D Client -> 4D Server

Anyway in short I don’t know of a way to go three tier without a lot of work. And for a true 3 tier, web is a good way to do it.

Neil


> On Jan 27, 2020, at 8:48 PM, Tarawerkz via 4D_Tech <[hidden email]> wrote:
>
> Hi All,
>
> I have an application running in a hospital environment for a number of years.
> In the light of the increasing awareness of data security, the client’s IT in their own words are looking at "redoing the whole 4dcis database onto 2 or 3 tier system where there is a database separation from application layer”
>
> The current setup is a v15 client-server application, with about 80 concurrent client licenses serving users located at 2 separate locations.
>
> As it stands, a 4D application already has a 2-layer architecture being a client-server application.  
> We could perhaps enhance it a little to make it a 2-tier environment by moving the segregating the 4D Server software and the 4D structure files (business logic) on to one server and the 4D data files (database) on to a separate server.  Doing that however has no effect on the 4D database architecture, it still remains a 2-layer database architecture.
>
> Apart from re-developing the application into a complete web-based application, how can a 4D application be refreshed into a 3-tier system?
>
> I would like to tap on the collective wisdom of the forum to gather some views on the plausibility of the above.
> Thank you.
>
> Regards,
> Ronnie
> Tarawerkz
>
>
>
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:[hidden email]
> **********************************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Simple solution would be to decide which data needed protection. Move that
into Mysql or Postgres and use Pluggers Mysql plugin to access the data.
Regards
Paul



--
Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Ronnie,

We have done several options which others have mentioned:

1. We moved certain aspects of our system into a browser for the front end, using REST calls to access the data.

2. We have moved certain aspects of the system out of the 4D database into either MySQL or SQL Server.

Both of these options were "work" but allowed us to reuse the 25 years of business logic already written.

Best,


Steve

*********************************************
  Stephen J. Orth                                                
  The Aquila Group, Inc.          Office:  (608) 834-9213
  P.O. Box 690                           Mobile:  (608) 347-6447
  Sun Prairie, WI 53590

  E-Mail:  [hidden email]
*********************************************

-----Original Message-----
From: 4D_Tech <[hidden email]> On Behalf Of Tarawerkz via 4D_Tech
Sent: Monday, January 27, 2020 9:48 PM
To: 4D iNug Technical <[hidden email]>
Cc: Tarawerkz <[hidden email]>
Subject: 4D Application as a 3-tier System

Hi All,

I have an application running in a hospital environment for a number of years.
In the light of the increasing awareness of data security, the client’s IT in their own words are looking at "redoing the whole 4dcis database onto 2 or 3 tier system where there is a database separation from application layer”

The current setup is a v15 client-server application, with about 80 concurrent client licenses serving users located at 2 separate locations.

As it stands, a 4D application already has a 2-layer architecture being a client-server application.  
We could perhaps enhance it a little to make it a 2-tier environment by moving the segregating the 4D Server software and the 4D structure files (business logic) on to one server and the 4D data files (database) on to a separate server.  Doing that however has no effect on the 4D database architecture, it still remains a 2-layer database architecture.

Apart from re-developing the application into a complete web-based application, how can a 4D application be refreshed into a 3-tier system?

I would like to tap on the collective wisdom of the forum to gather some views on the plausibility of the above.
Thank you.

Regards,
Ronnie
Tarawerkz

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
On Jan 28, 2020, at 2:00 PM Ronnie wrote:

> I have an application running in a hospital environment for a number of years.
> In the light of the increasing awareness of data security, the client’s IT in their own words are looking at "redoing the whole 4dcis database onto 2 or 3 tier system where there is a database separation from application layer”
>
> The current setup is a v15 client-server application, with about 80 concurrent client licenses serving users located at 2 separate locations.
>
> As it stands, a 4D application already has a 2-layer architecture being a client-server application.  
> We could perhaps enhance it a little to make it a 2-tier environment by moving the segregating the 4D Server software and the 4D structure files (business logic) on to one server and the 4D data files (database) on to a separate server.  Doing that however has no effect on the 4D database architecture, it still remains a 2-layer database architecture.
>
> Apart from re-developing the application into a complete web-based application, how can a 4D application be refreshed into a 3-tier system?
>
> I would like to tap on the collective wisdom of the forum to gather some views on the plausibility of the above.

If a “3 tier system” a hard requirement, then introduce another 4D Client layer running a web server. You create some kind of API — maybe a REST interface — that would be accessed by running 4D Web Server — or NTK — on 4D Client. Then you have end user 4D Clients connect to this new 4D Client web server.

The new 4D Client web server machines connects to 4D Server directly and act as a relay between the 4D Client at the user end.  You would run 2 4D Server instances. Probably on different machines. One stores the data and it what the 4D Client web server machines connect to.

Your end user 4D Clients connect to another 4D Server and this is purely an application server. It just serves the 4D structure to 4D Clients. The database would be empty.

Looks something like this:

4D Client End User —> 4D Client Web Server —> 4D Server with data
              |
              |---------------------------------------------------> 4D Server with no data (serving the application layer)

That’s a complex system. You’ve got too good of a system. Too easy. You need to add more layers and complexity. But maybe that is what IT wants. More layers because they think that means more places to add more control and more security protections.

You could also make the case that your new API web server interface — that will be running on 4D Client — could be used by a newly created web app running in the browser. The web app would connect to 4D Client web server using the same API that the 4D Client end user machines use. That way, if IT really has the idea they want to move to a pure web app front end, you could provide this with your 4D backend. And your 4D backend is a 2 tier system — 4D Client -> 4D Server.

Setting up a system like this would allow end users to continue to use 4D Client and keep the same UI they are used to. Once you have your REST API working, you switch out all SAVE RECORD and QUERY and database access commands that 4D Client now uses to use your new REST API.

Get that all working and then you can provide that API to the web app developers. They build a web app using the same calls that 4D Client is using. The 4D Client web server does not know or care if requests are coming from a 4D Client doing an HTTP Request or from a web browser.

Tim

*****************************************
Tim Nevels
Innovative Solutions
785-749-3444
[hidden email]
*****************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
Tim,

I've always wondered, when people recommend using 4D Client as a web server, how you go about load balancing.  It's one thing if your user base is small, however when you have 50-100 users, you cannot send them all to one 4D Client web server.

So, what is the solution for balancing multiple 4D Client web servers?

Thanks!


Steve

*********************************************
  Stephen J. Orth                                                
  The Aquila Group, Inc.          Office:  (608) 834-9213
  P.O. Box 690                           Mobile:  (608) 347-6447
  Sun Prairie, WI 53590

  E-Mail:  [hidden email]
*********************************************

-----Original Message-----
From: 4D_Tech <[hidden email]> On Behalf Of Tim Nevels via 4D_Tech
Sent: Tuesday, January 28, 2020 3:13 PM
To: [hidden email]
Cc: Tim Nevels <[hidden email]>
Subject: Re: 4D Application as a 3-tier System


If a “3 tier system” a hard requirement, then introduce another 4D Client layer running a web server. You create some kind of API — maybe a REST interface — that would be accessed by running 4D Web Server — or NTK — on 4D Client. Then you have end user 4D Clients connect to this new 4D Client web server.



**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
You stick a load balancer in front as the public-facing IP and let the load balancer, uh, balance the load.

> On Jan 28, 2020, at 4:22 PM, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> So, what is the solution for balancing multiple 4D Client web servers?

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
Jeff,

Duh...

I was hoping for more specifics like:

     1. What options are available?
     2. How it works with 4D?
     3. Has anyone done this as an OEM and what issues/obstacles have you run into?
     4. and so forth...

 This may be an ignorant request, but it's an area I know very little about, but want to learn more.

I'm also looking at this from an OEM perspective, where I don't get to control much from a technology standpoint at our customer sites.

Thanks!


Steve

*********************************************
  Stephen J. Orth                                                
  The Aquila Group, Inc.          Office:  (608) 834-9213
  P.O. Box 690                           Mobile:  (608) 347-6447
  Sun Prairie, WI 53590

  E-Mail:  [hidden email]
*********************************************

-----Original Message-----
From: 4D_Tech <[hidden email]> On Behalf Of Jeffrey Kain via 4D_Tech
Sent: Tuesday, January 28, 2020 3:29 PM
To: 4D iNug Technical <[hidden email]>
Cc: Jeffrey Kain <[hidden email]>
Subject: Re: 4D Application as a 3-tier System

You stick a load balancer in front as the public-facing IP and let the load balancer, uh, balance the load.

> On Jan 28, 2020, at 4:22 PM, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> So, what is the solution for balancing multiple 4D Client web servers?

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
When I was supporting an enterprise app which had 4D as its core, we had four 4D Clients running as Web Services Clients and used ‘round robin’ DNS load balancing. We also tried BigIP from F5, which is much smarter about load balancing but I don’t recall why we went back to round robin.

It’s hard to say whether we ever had enough traffic to justify the set up, so I can’t tell you whether it made a difference. It was easy to manage, and we could down any given Web Services Client without interrupting service.

HTH,

Tom Benedict

> On Jan 28, 2020, at 13:22, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> Tim,
>
> I've always wondered, when people recommend using 4D Client as a web server, how you go about load balancing.  It's one thing if your user base is small, however when you have 50-100 users, you cannot send them all to one 4D Client web server.
>
> So, what is the solution for balancing multiple 4D Client web servers?
>
> Thanks!
>
>
> Steve
>
> *********************************************
>  Stephen J. Orth                                                
>  The Aquila Group, Inc.          Office:  (608) 834-9213
>  P.O. Box 690                           Mobile:  (608) 347-6447
>  Sun Prairie, WI 53590
>
>  E-Mail:  [hidden email]
> *********************************************
>
> -----Original Message-----
> From: 4D_Tech <[hidden email]> On Behalf Of Tim Nevels via 4D_Tech
> Sent: Tuesday, January 28, 2020 3:13 PM
> To: [hidden email]
> Cc: Tim Nevels <[hidden email]>
> Subject: Re: 4D Application as a 3-tier System
>
>
> If a “3 tier system” a hard requirement, then introduce another 4D Client layer running a web server. You create some kind of API — maybe a REST interface — that would be accessed by running 4D Web Server — or NTK — on 4D Client. Then you have end user 4D Clients connect to this new 4D Client web server.
>

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
On Jan 28, 2020, at 3:22 PM, Stephen J. Orth <[hidden email]> wrote:

> I've always wondered, when people recommend using 4D Client as a web server, how you go about load balancing.  It's one thing if your user base is small, however when you have 50-100 users, you cannot send them all to one 4D Client web server.
>
> So, what is the solution for balancing multiple 4D Client web servers?


Hi Steve,

We run 4D instances on Amazon and use it’s load balancing features. I didn’t set it up, but we have 2 copies of 4D running that respond to web requests. Amazon decides which machine to send the web requests to.

In addition to load balancing you get fault tolerance too. If one 4D crashes or goes deaf to web requests, the other 4D instance is still there. We have a process that runs on 4D Server that pings the 4D Client web servers every 2 minutes to notify us if one goes down.

To complete the fault tolerance system, we have another Amazon instance that is running another copy of 4D Server as a mirror. Production 4D Server sends log files to Mirror 4D Server every 10 minutes. If Production 4D Server goes down, we can switch to Mirror 4D Server and have the 4D Clients connect to that.

So a basic system consists of 4 Amazon instances: Production 4D Server machine, Mirror 4D Server machine, 4D Client Web Server 1 and 4D Client Web Server 2.

You max out the 2 4D Client web server instances, just add more instances. You max out Production 4D Server, reconfigure the instance with more CPU and resources.

Tim

*****************************************
Tim Nevels
Innovative Solutions
785-749-3444
[hidden email]
*****************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
>To complete the fault tolerance system, we have another Amazon instance that is running another copy of 4D Server as a mirror. Production 4D Server sends log files to Mirror 4D Server every 10 minutes. If Production 4D Server goes down, we can switch to Mirror 4D Server and have the 4D Clients connect to that.

Tim, is this an automatic failover or do you have to down the clients and make a quick config change or relaunch with a different 4DLink file?

Tom Benedict

> On Jan 28, 2020, at 13:38, Tim Nevels via 4D_Tech <[hidden email]> wrote:
>
> On Jan 28, 2020, at 3:22 PM, Stephen J. Orth <[hidden email]> wrote:
>
>> I've always wondered, when people recommend using 4D Client as a web server, how you go about load balancing.  It's one thing if your user base is small, however when you have 50-100 users, you cannot send them all to one 4D Client web server.
>>
>> So, what is the solution for balancing multiple 4D Client web servers?
>
>
> Hi Steve,
>
> We run 4D instances on Amazon and use it’s load balancing features. I didn’t set it up, but we have 2 copies of 4D running that respond to web requests. Amazon decides which machine to send the web requests to.
>
> In addition to load balancing you get fault tolerance too. If one 4D crashes or goes deaf to web requests, the other 4D instance is still there. We have a process that runs on 4D Server that pings the 4D Client web servers every 2 minutes to notify us if one goes down.
>
> To complete the fault tolerance system, we have another Amazon instance that is running another copy of 4D Server as a mirror. Production 4D Server sends log files to Mirror 4D Server every 10 minutes. If Production 4D Server goes down, we can switch to Mirror 4D Server and have the 4D Clients connect to that.
>
> So a basic system consists of 4 Amazon instances: Production 4D Server machine, Mirror 4D Server machine, 4D Client Web Server 1 and 4D Client Web Server 2.
>
> You max out the 2 4D Client web server instances, just add more instances. You max out Production 4D Server, reconfigure the instance with more CPU and resources.
>
> Tim
>

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Steve Orth writes:

>     1. What options are available?  -> Many routers and server OS have round-robin load balancing built in. Bigger hardware devices, like F5 BigIP are available.
>     2. How it works with 4D?  -> 4D doesn’t know about it, so there is no impact.
>     3. Has anyone done this as an OEM and what issues/obstacles have you run into? -> shouldn’t be a problem, since 4D doesn’t know about the load balancer.
>     4. and so forth...

> On Jan 28, 2020, at 13:34, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> Jeff,
>
> Duh...
>
> I was hoping for more specifics like:
>
>     1. What options are available?
>     2. How it works with 4D?
>     3. Has anyone done this as an OEM and what issues/obstacles have you run into?
>     4. and so forth...
>
> This may be an ignorant request, but it's an area I know very little about, but want to learn more.
>
> I'm also looking at this from an OEM perspective, where I don't get to control much from a technology standpoint at our customer sites.
>
> Thanks!
>
>
> Steve
>
> *********************************************
>  Stephen J. Orth                                                
>  The Aquila Group, Inc.          Office:  (608) 834-9213
>  P.O. Box 690                           Mobile:  (608) 347-6447
>  Sun Prairie, WI 53590
>
>  E-Mail:  [hidden email]
> *********************************************
>
> -----Original Message-----
> From: 4D_Tech <[hidden email]> On Behalf Of Jeffrey Kain via 4D_Tech
> Sent: Tuesday, January 28, 2020 3:29 PM
> To: 4D iNug Technical <[hidden email]>
> Cc: Jeffrey Kain <[hidden email]>
> Subject: Re: 4D Application as a 3-tier System
>
> You stick a load balancer in front as the public-facing IP and let the load balancer, uh, balance the load.
>
>> On Jan 28, 2020, at 4:22 PM, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>>
>> So, what is the solution for balancing multiple 4D Client web servers?
>
>

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
On Jan 28, 2020, at 3:44 PM, Tom Benedict <[hidden email]> wrote:

> Tim, is this an automatic failover or do you have to down the clients and make a quick config change or relaunch with a different 4DLink file?


Hi Tom,

It is currently a manual process to switch to the mirror. But it is certainly something that could be automated. We just have not committed the time to build that out. You could do it with 4DLink files, or with dns changes on Amazon.

A person could also automate spinning up new 4D Client instances to handle big increases in traffic. Amazon had a powerful scripting system you can use to clone, spin up and shut down instances. You just have to commit the time to build it.

Balinder Walia is an expert in this area. He has automation tools built with 4D that you can use to build the automation scripts for doing this on Amazon. He did a session at a 4D Summit a few years ago about this.

Tim

*****************************************
Tim Nevels
Innovative Solutions
785-749-3444
[hidden email]
*****************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
Tom,

Thanks for the feedback, but my question (as an OEM) is still not really answered.

As an OEM, I do not get to dictate how the network is configured, or what hardware can/cannot be purchased.  How, as an OEM solution provider, do I build a web based solution knowing I cannot control these critical aspects?

I understand how this can be implemented in a situation for a non-OEM, since they work for that company.  However, I'm guessing there are not many, if any, OEM's trying to attempt this?

Best,


Steve

-----Original Message-----
From: Tom Benedict <[hidden email]>
Sent: Tuesday, January 28, 2020 3:48 PM
To: [hidden email]; 4D iNug Technical <[hidden email]>
Subject: Re: 4D Application as a 3-tier System

Steve Orth writes:

>     1. What options are available?  -> Many routers and server OS have round-robin load balancing built in. Bigger hardware devices, like F5 BigIP are available.
>     2. How it works with 4D?  -> 4D doesn’t know about it, so there is no impact.
>     3. Has anyone done this as an OEM and what issues/obstacles have you run into? -> shouldn’t be a problem, since 4D doesn’t know about the load balancer.
>     4. and so forth...

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
I don't manage them, but we use A10 load balancers for our 4 4D Client instances running as virtual machines that serve web service requests from our website and a variety of other non-4D applications. The 4D Clients are running an HTTP server based on NTK (very very similar to the sample HTTP server provided with NTK). It's pretty easy to add and remove clients if we need to beef up the number of 4D Client instances for a big event, or scale back if a VM goes offline or whatever

https://www.a10networks.com/products/thunder-adc/

I remember at Orchard that some of our more advanced customers also installed load balancers in front of 4D Client-based 4D web servers, pretty much on their own.  Your 4D code has no idea that there's a load balancer running, so you don't have to write anything special for it.

HTH (better) :)

Jeff

> On Jan 28, 2020, at 4:34 PM, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> I was hoping for more specifics like:
>
>     1. What options are available?
>     2. How it works with 4D?
>     3. Has anyone done this as an OEM and what issues/obstacles have you run into?
>     4. and so forth...
>
> This may be an ignorant request, but it's an area I know very little about, but want to learn more.

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
For a load balancer, you shouldn't care.  There's nothing special about 4D's web server.

> On Jan 28, 2020, at 4:54 PM, Stephen J. Orth via 4D_Tech <[hidden email]> wrote:
>
> As an OEM, I do not get to dictate how the network is configured, or what hardware can/cannot be purchased.  How, as an OEM solution provider, do I build a web based solution knowing I cannot control these critical aspects?

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
In reply to this post by 4D Tech mailing list
>     1. What options are available?
>     2. How it works with 4D?
>     3. Has anyone done this as an OEM and what issues/obstacles have you run into?
>    4. and so forth...

... As was said before a load balancer... it is a device that is put in front of a pool of machines. It balances the load between applications:

https://www.f5.com/services/resources/glossary/load-balancer

1 - There are many different types and prices for load balancers
2 - They work with 4D by same as other web servers, they route requests between servers... each 4D client would be a pool member.
3 - Yes
4 - Not really much more to say... load balancers can be configured in a round robin type setup or keep persistence for a user so they follow the same path.

Neil




--

Privacy Disclaimer: This message contains confidential information and is intended only for the named addressee. If you are not the named addressee you should not disseminate, distribute or copy this email. Please delete this email from your system and notify the sender immediately by replying to this email.  If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.

The Alternative Investments division of UMB Fund Services provides a full range of services to hedge funds, funds of funds and private equity funds.  Any tax advice in this communication is not intended to be used, and cannot be used, by a client or any other person or entity for the purpose of (a) avoiding penalties that may be imposed on any taxpayer or (b) promoting, marketing, or recommending to another party any matter addressed herein.
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

Re: 4D Application as a 3-tier System

4D Tech mailing list
NGINX is also a popular option as a load balancer. Free and open source.

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

It can also proxy non-http protocols. I wonder if the silly "must be 3 tier" requirement could be satisfied by putting NGINX in in between 4D Client and 4D Server :).

John DeSoi, Ph.D.


> On Jan 28, 2020, at 4:50 PM, Dennis, Neil via 4D_Tech <[hidden email]> wrote:
>
>>    1. What options are available?
>>    2. How it works with 4D?
>>    3. Has anyone done this as an OEM and what issues/obstacles have you run into?
>>   4. and so forth...
>
> ... As was said before a load balancer... it is a device that is put in front of a pool of machines. It balances the load between applications:
>
> https://www.f5.com/services/resources/glossary/load-balancer
>
> 1 - There are many different types and prices for load balancers
> 2 - They work with 4D by same as other web servers, they route requests between servers... each 4D client would be a pool member.
> 3 - Yes
> 4 - Not really much more to say... load balancers can be configured in a round robin type setup or keep persistence for a user so they follow the same path.

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
John,

Thank you for this information.  We have looked at NGINX previously, but in a different role.  I'll do some additional research on this, because as an OEM I may have more control installing this on our customer's hardware, than telling them they need to purchase load balancing hardware.

Best,


Steve


-----Original Message-----
From: 4D_Tech <[hidden email]> On Behalf Of John DeSoi via 4D_Tech
Sent: Tuesday, January 28, 2020 6:06 PM
To: 4D iNug Technical <[hidden email]>
Cc: John DeSoi <[hidden email]>
Subject: Re: 4D Application as a 3-tier System

NGINX is also a popular option as a load balancer. Free and open source.

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

It can also proxy non-http protocols. I wonder if the silly "must be 3 tier" requirement could be satisfied by putting NGINX in in between 4D Client and 4D Server :).

John DeSoi, Ph.D.


> On Jan 28, 2020, at 4:50 PM, Dennis, Neil via 4D_Tech <[hidden email]> wrote:
>
>>    1. What options are available?
>>    2. How it works with 4D?
>>    3. Has anyone done this as an OEM and what issues/obstacles have you run into?
>>   4. and so forth...
>
> ... As was said before a load balancer... it is a device that is put in front of a pool of machines. It balances the load between applications:
>
> https://www.f5.com/services/resources/glossary/load-balancer
>
> 1 - There are many different types and prices for load balancers
> 2 - They work with 4D by same as other web servers, they route requests between servers... each 4D client would be a pool member.
> 3 - Yes
> 4 - Not really much more to say... load balancers can be configured in a round robin type setup or keep persistence for a user so they follow the same path.

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
Reply | Threaded
Open this post in threaded view
|

RE: 4D Application as a 3-tier System

4D Tech mailing list
I use nginx running on windows from this source
http://nginx-win.ecsds.eu/

Combine this with nssm.exe and you can have nginx sitting behind the
firewall acting as a proxy or load balancer for 4D server and or 4D clients.
I use 4d Clients to serve different websites but using the same 4D server.

The 4D server connects to Joomla websites via mysql running in hyperv
machine on same win server so you can secure the connection between 4D and
Mysql via the virtual switch.

Been working fine for a few years. The only snag now with V18 is that 4D
client create its own folder in users/profile so not as easy to manage where
the website root is located.

Regards
Paul



--
Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[hidden email]
**********************************************************************
12