Slow connection to Filemaker Server from other countries - filemaker

Our company server is located in China and we used Filemaker make own ERP system. In China all our staff is using Filemaker Pro or Go to connect to the server, and of course there is no problem with connection. Latency is about 30-50 ms.
But all our customers are from Russia or other countries, and they use Filemaker Webdirect. Sometime they even can't see the login layout, also latency is about 1200 or higher, packet loss is about 50%.
I think a problem is China Great Wall Firewall, and i don't know how we can let our customers have a good connection form other countries?

Ok. I found a good solution. I've implemented RESTfm open source php code that uses Filemaker server php and xml api.
http://restfm.com/
I've tested it to fetch 1000 records with 13 fields in 3 countries. The longest request time was 8000 ms. It's more better than webdirect or connection through FM GO.
Get or post 1 record is even faster and took only 1000 ms.
So right now I use like a PHP web service between my FM server and other apps.
I also wrote 1 app for iOS, so our customers very happy.

Related

is sails.io efficient enough to build chat website for some 1000 online user at the same time?

I intend to use sails.io to build a chat website. There will be some 1000 user online at the same time. is sails.io is enough to do that? And is there a way to test performance of chat website? with some normal website i known jmeter but for chat website i know nothing at all
That will depend mostly of the server you will be using for your service.
Sockets are simply an array of connections. You can have as many as you want (within normal memory usage limits of your server machine).
You can checkout this answer for more information on socket costs What's the maximum number of rooms socket.io can handle?
I am currently sails.io for a chat product with 2000+ simultaneous users using it during business hours. Sails socket.io have been holding it pretty well. Nevertheless I got it prepared for horizontal scaling when I maximum capacity starts to show symptoms.You should too.

How to stop or deal with spam server connections

I looked online and can't seem to find too many similar stories, which is surprising.
I rented a server from a provider, and I run my server software on there. My iOS app connects to it. It's been up for over a month with no issues, and gets about dozens of connections a day.
Starting about 30 hours ago, someone began to connect to it every 2 seconds. Always same IP. I doubt he leaved his phone on for 30 hours? And my app has only <100 daily users, so I have no competitors who would gain from this.
I finally blocked him from my server using iptable. From the software engineering side, what is the common practice for preventing these kinds of things? Am I supposed to keep track from the server side and refuse to accept repeated connections? Do I use some sort of login/handshake, or what do I do?
To clarify, I do not use http or apache. I wrote a server based on BSD sockets using a custom protocol over TCP. I also have a crypto hash and would terminate a connection if the message doesn't hash correctly.
EDIT: I did a count in my connection log. 3 IPs connected totaling 10,000 times over the last 30 hours. 2 of them have since stopped. All from a tiny country in Asia which I won't name.
You need to implement some sort of antirobot in your application:
Drop incoming connection if there are already >= N established connections from the same IP address.
Drop incoming connection if total number of connections from this IP address for last 1, 5, and 30 minutes exceeds predefined thresholds (yes, you will need to keep track of number of connections made from each IP address).
More sophisticated antirobots used in high-load environments would also have means of detecting and blocking not only single IP addresses, but also whole ranges of IP addresses (networks). And also it would be better not to drop connections blindly but to redirect clients to captcha.
Anyway, there is no perfect solution to distinguish between robot and normal client: either you drop some good clients, or you allow some robots to sift through your antirobot.

Load balancing of ADFS 2.0. How many users does stand-alone server support?

I want to figure out how many users can ADFS 2.0 stand-alone server support. I mean load of the server. My customers said that it supports just 100 users (seems strange for a server and so simple operations) and they have 700 users at the same time.
So he recomended to have a federation farm instead of stand-alone server. But I prefere to check first.
So, can you share info about load limitations of stand-alon SSO server VS server farms?
Any docs, articles with numbers, experts ideas or so on...
We have standalone servers that support WAY more than 100 users - easily over 1000.
Not sure what the upper limit is?
A farm is only going to help if you have a load balancer in front of them
I also found an article about this problem.
The auther writes that they use 2 ADFS servers for 10 000 users.
And there is a calculator to get number of servers depending on the load and users
There is no such restriction and it solely depends on how often users login to your system.
We have few deployments of the adfs, one of them supports like 50000 users and only TWO servers are enough. I even suspect one would do however this is, as always, not a good idea to have just one server (at least two servers = failover, you wouldn't want the whole environment to be inaccessible just because your login server just died).
The idea would be then to start with two servers and monitor the infrastructure. Add other instances only when necessary.

Domino + iPhone push email

I understand there are multiple ways to receive Domino based email on a iPhone, I have already come across Traveller, but since it's resource intensive and the server is running xpages applications, I was hoping for other options. What other options are available to me? Would appreciate suggestions as well as information on how the suggestion can be implemented. Is IMAP an option here at all?
Many thanks in advance for all your help.
A couple of quick options are:
Install Traveller on another server, accessing mail-files on your primary mailserver - thereby reducing load on your web server.
POP3 - This has been supported in Domino since the year dot, does the job for simple email polling.
IMAP - Like POP3 only with support for Folders, etc. You need to "IMAP enable" your mail-files first (this just sets up a few views, references, etc).
The final two options won't give you Calendar access though. Also, the final two options would require you to set up some kind of authenticated SMTP to send mails out through your Domino server. No biggy though, it's just all a lot simpler with Traveller.
Take a look at IBM Lotus Notes 8.5.2 and 8.5.3 Traveler performance. It states
To support more than 2000 (or number reached in our tests) active Lotus Notes Traveler users, customers need to deploy more than one Lotus Notes Traveler 8.5.2 64-bit server.
The processor utilization on the Lotus Domino mail server should be monitored to ensure that the mail server can handle the added activity from the Lotus Notes Traveler users at peak load.
Note that Lotus Notes Traveler is a memory-intensive application and it is best to deploy Lotus Domino 64-bit servers on Windows 64-bit operating systems to support large numbers of mobile device users.
As long, as you don't define "resource intensive" and state more info regarding number of concurrent users, machine specs, ... we can't give you better answers.

Recommendations on apache tuning for chat application

I have a chat application (xmpp / muc) that is going to be served by apache (we might change to nginx later but right now it's not easily done). If a user is in 2 rooms, he'll have between 2 and 4 active connections to the server (long-polling connections), so if we have 200 users per room and we have 5 rooms, what should the ServerLimit, MaxClients be set to? For example, these are the default values:
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
Thanks,
Each user should only have a single connection to the XMPP server if your using something like BOSH to make the Web->XMPP connection. Each MUC room activity will be sent to the XMPP server with the user's JID as the target and that will cause the server to send that to the appropriate BOSH connection. Same for presence.
The information you need to load balance the Apache setup is the same as load balancing any long-polling connection - XMPP doesn't add anything exotic to the mix. An XMPP BOSH connection is a long-polling connection to your web server which is then sent to a persistent connection to the XMPP server - causing 2 sockets to be opened per user connect.
I'm guessing this a pre-fork Apache....
If you've got 1000 concurrent chat connections, then you need at least 1000 webservers (presumably you'll be serving up static content too, and you say that each presence results in 2 connections - so you can double the 1000) - a ServerLimit/MaxClients of 256 is not going to cut it, you probably need around 2200 to support this (but without hard metrics its hard to give an exact figure).
This is a ridiculously large amount. To support this I'd be looking for 3 boxes, each with about 2Gb free memory before the webserver is started.
MaxRequestsPerChild is not really relevant other than the fact you want some turnover of processes, particularly if you are using long polling.
This is one of the reasons why COMET is not a good idea. Using AJAX polling would be much more efficient. Assuming this is not something you can change, you might want to have a look at using a threaded Apache webserver which is marginally more memory efficient,
C.