E9.2 AIS calls - internal call speed vs external call speed and how to speed up external calls

JohnDanter2

JohnDanter2

VIP Member
Hi folks

We are playing around with calling E1 orchestrations, both internally from an E1 page and externally via Postman. Obviously external calls will be slower but I am noticing that for the exact same Orchestration call over the exact same data we see this:

Internal call from E1 page
"jde__serverExecutionSeconds": 0.261

External call using Postman
"jde__serverExecutionSeconds": 0.852

On average it's always about 500 milliseconds slower for external calls to execute the E1 code.
Now there obvious extra things going on in an external call that isn't internally. Internal calls already know who I am (User ID password) so it doesn't need to check security, internal calls already have a JAS web session and connection to the AIS server - all of which is not happening in an external call and explains the 500 milliseconds. But is there anyway I can speed up the external calls? As a 500 milliseconds overhead seems pretty bad

We will use a token and also Connection keep-alive but what else can we do internally and then in the call itself to speed up external call time.

Thanks

John
 
That's all it is - Authentication. If you look at the web instance stats (CallObj Stats) for the HTML server servicing the AIS instance, you'll see the breakdown. The login process is your 500 milliseconds. Odds are, even your login to E1 before making the call from the page took roughly 500 milliseconds (check init-remote-env).

And really, with basic auth, 500ms doesn't seem that awful. I've seen way...way...way......wayyyyy worse. Wait till you blow everyone's minds and figure out garbage collection is destroying the cache and that orch with 18 parts that wasn't called overnight took 15 seconds longer first thing in the morning and nobody knows why.
 
John, the 500ms difference is PRIOR to you using token to make the call from external right?

My understanding is that token method is the best/only way to improve performance on external calls, assuming the orch endpoint is as ideal as can be
 
Thanks guys

I get the authentication part etc that will add time, but what I dont' understand is why when both calls are now in E1 and E1 is happy with both requests and the stopwatch starts, why does option A take 0.261s to run the same code that option B takes 0.852s to run

I guess it's HTML and AIS connections and then grabbing threads to run on that the internal call already has. Fine, how can I speed that part up.

So tokens will reduce the authentication time. How do I then speed up the E1 execution time. Dedicataed threads/kernels maybe????

I would have thought that jde__serverExecutionSeconds is the complete time to execute E1 side of things. From initial request to end

In Postman the external call actually takes 1.5 seconds, 0.852 of which is made up executing E1 code. Yet from the E1 Page the same is executed in a fraction of the time with the common metric of jde__serverExecutionSeconds being taken for reference
So why is the same code executed faster when both options are now in E1


Crude illustration :)

|----- external call over VPN and ISP etc time------| |---------E1 execution time--------| |--back to postman---|

|--internal page call time --| |--E1 execution time --| |-back to E1 page -|


|---------E1 execution time--------|
vs
|--E1 execution time --|

I guess the external call needs to be given a connection to the JAS and AIS and grab threads etc, and thats why it's longer.
I am just after ways to speed those up
 
John, the 500ms difference is PRIOR to you using token to make the call from external right?

My understanding is that token method is the best/only way to improve performance on external calls, assuming the orch endpoint is as ideal as can be

Not quite Dave
The overall external call can take 1.5 seconds total in postman, 0.852s of which in the breakdown and the JSON response variable is the jde execution time part.
So I am just after ways to speed this E1 side of it up when for the exact same code called internally it's over in 0.25 seconds not 0.85. So that's probably allocation of threads and resources etc. So I'm just after pointers on how to allow E1 to speed that side of itup.
Dedicated kernels or servers maybe the way to go but it's just a 'hunch' and I'm after facts :)
 
Have you tried this ouside of Postman? Jmeter / SOAP UI or a direct app? I do think Postman adds a bit of delay.
You should also consider retaining the spec cache on the HTML server that services the AIS calls bit longer.
 
Back
Top