[Info-vax] Python for x86?
Dave Froble
davef at tsoft-inc.com
Tue Apr 18 08:33:25 EDT 2023
On 4/18/2023 8:10 AM, Arne Vajhøj wrote:
> On 4/17/2023 10:54 PM, Dave Froble wrote:
>> On 4/17/2023 8:00 PM, Arne Vajhøj wrote:
>>> On 4/17/2023 10:17 AM, Dave Froble wrote:
>>>> Gotta say, I'm 100% with Bill on this subject. Yes, the user knows what is
>>>> needed. But the user may not understand subtle issues. Case in point.
>>>>
>>>> In CODIS we've provided what I'll call web services. May not meet Jan Erik's
>>>> definition of a web services, but they do the job.
>>>
>>> In standard IT industry terminology "web service" is used for
>>> text payloads transported over HTTP(S).
>>>
>>> But I don't think your point depends on whether it is text over HTTP(S)
>>> or binary over plain TCP.
>>>
>>>> One allowed a
>>>> socket connection to inquire about inventory availability. Someone setting up
>>>> a web based "shopping cart" could invoke the service to get the availability
>>>> of products. Now, there is a bit of overhead in the inquiry. Ask for a
>>>> socket connection, do the handshake stuff, send the inquiry, receive the data,
>>>> and then break down the connection. One web "programmer" managed to just
>>>> about drag the entire application to a halt. He was looking for the
>>>> availability of thousands of products. And so issued thousands of
>>>> connections. Lots of overhead. The designer of the web service understood
>>>> what could be needed, and set up the design to allow thousands of products to
>>>> be requested in one connection. Note, this was well documented. However, the
>>>> user didn't do the research, just did what he needed, and didn't worry about
>>>> the overall task. That's what happens when some hacker who doesn't
>>>> understand, or care about, the overall task throws together something.
>>>
>>> I have a very different take on that example.
>>>
>>> If the service documentation said that an argument X
>>> should be 10 characters, the client developer did not read
>>> it and send 12 characters and as a result the server
>>> crashed - then I assume we would agree that it was a
>>> bad design/implementation of the server, because it
>>> should check the length and handle invalid input.
>>
>> That wasn't the issue.
>
> I know. But the issue sounded pretty similar.
>
>>> But the overload situation is really the same. The
>>> server should be prepared for a high request rate and
>>> limit the request rate so the service could not bring
>>> down the server.
>>
>> The server performed adequately. It was the hacker who complained, and then
>> we had to look at what he was doing. Then we had to point him to the
>> documentation, which he hadn't read throughly. It was his stuff that was slow.
>
> Ah. It was the client application that was "about drag the entire
> application to a halt". I read it as the server application.
>
> My mistake.
>
>>> So I think this is a case of the server side being
>>> bad design.
>>
>> No,it worked quite well.
>>
>>> There is a little extra twist here. If the service
>>> had been a standard web service, then it would not
>>> have been necessary to implement the request rate
>>> limit in the service itself. Instead a setup like:
>>
>> Guess you got a problem with apps that work quite well?
>>
>>> client--API gateway--service
>>>
>>> could have been used and the API gateway could
>>> do rate limiting defined in configuration (it could
>>> also do caching, access control and other useful
>>> stuff all defined in configuration).
>>
>> Same result, the hacker would have had poor performance.
>
> I misunderstood the problem.
>
> Arne
Well, maybe I don't explain things well enough ...
:-)
--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486
More information about the Info-vax
mailing list