Feature #9055
server-side processing of client platform dependencies in the UI
100%
Related issues
History
#1 Updated by Galya B almost 2 years ago
- Related to Feature #4065: server-side processing of client platform dependencies added
#5 Updated by Constantin Asofiei over 1 year ago
Greg, we need this for PASOE to be complete.
#6 Updated by Galya B over 1 year ago
Constantin Asofiei wrote:
Greg, we need this for PASOE to be complete.
Actually the customer project I've tested can work without it. Did you find some blockers?
#7 Updated by Greg Shah over 1 year ago
Is it needed for existing customers?
I know one customer that uses PASOE and has a reporting processing that does use heavy redirected terminal. But that reporting process is a manually run batch session, it doesn't run under PASOE.
If existing customer's don't have this use case then I'd like to defer this work.
#8 Updated by Constantin Asofiei over 1 year ago
If the UI (widgets) is not a hard requirement for #8661, then we can postpone it.
But I'm worried about features which are still 'on the client', like MESSAGE.
#9 Updated by Greg Shah over 1 year ago
It is a fair concern. We should at least test the UI functionality in OE (PASOE mode) to confirm that it all works. I say this because they might also have had quite a bit of process-wide logic in their UI implementation which they may not have wanted to fixup for a thread-safe version. It might be low odds but I'd like to confirm that in OE using redirected UI functionality actually works in PASOE mode. If it doesn't work there then we don't have to add it, we could just fail the same way.
#10 Updated by Greg Shah over 1 year ago
About PASOE:
PASOE implements multiple 4GL sessions in each agent process, each of those 4GL sessions is on its own thread. In OE, PASOE allows running multiple such multi-threaded agents. In FWD, we currently only support a single agent. Regardless, the tricky part here is that all the UI usage would be done in the server process, needing to be properly separated on different contexts.
The current design for this (being implemented in #8661) is fully server side and there is NO FWD CLIENT for those PASOE contexts/sessions.
#11 Updated by Greg Shah over 1 year ago
From Hynek:
Do you anticipate to identify the individual UI resources (client calls, UI features, etc.) used in SXe and somehow make them work in the server context, or a broader solution to allow to run a client-session with any UI feature in the server process?
We will do the minimum necessary at this point. If possible to just handle a subset of the UI, we will certainly do that.
#12 Updated by Greg Shah over 1 year ago
From Hynek:
It sounds like you are more up to a parallel albeit limited UI implementation on the server.
I was thinking about introducing a client session and a UI context to the server. I.e. the existing design would be preserved, just the UI context would be moved to the server. I know this would be still pretty heavy, but the effort would be relatively low.
Yes, I think this is the approach. These sessions are batch/headless sessions so it isn't about full interactive code.
#14 Updated by Hynek Cihlar over 1 year ago
Constantin, do we have a comprehensive list of UI statements or UI features used on the server side?
If the list is small (for now I am only aware of MESSAGE), then we can modify the execution flow in LogicalTerminal not to forward such a call to ThinClient, but handle it explicitely (output to the logs for example). This will make the runtime leaner, no need to bring in the complex set of class dependencies (albeit limited) starting with ThinClient.
#15 Updated by Constantin Asofiei over 1 year ago
Hynek Cihlar wrote:
Constantin, do we have a comprehensive list of UI statements or UI features used on the server side?
If the list is small (for now I am only aware of MESSAGE), then we can modify the execution flow in
LogicalTerminalnot to forward such a call toThinClient, but handle it explicitely (output to the logs for example). This will make the runtime leaner, no need to bring in the complex set of class dependencies (albeit limited) starting withThinClient.
We have FRAME processing in PASOE agents - see #8661-818 The assumption was these were executing on some batch process, but they are used on the appserver, too.
#16 Updated by Hynek Cihlar over 1 year ago
Constantin Asofiei wrote:
We have FRAME processing in PASOE agents - see #8661-818 The assumption was these were executing on some batch process, but they are used on the appserver, too.
I see, no shortcuts then.
#17 Updated by Greg Shah about 1 year ago
- Assignee set to Hynek Cihlar
- Status changed from New to WIP
Hynek: Please update the %Done and summarize any recent headway.
#18 Updated by Hynek Cihlar about 1 year ago
- % Done changed from 0 to 40
The implementation is underway to have at least the minimum set of UI resources available in the multi-session app server context (MESSAGE, FRAME and the related resources).
The implementation involves setting up client driver (currently based on batch driver) for the server context and runtime changes to allow the client-side code coexist in the server context.
The driver setup is mostly done. I am still considering to have a special purpose driver instead of the plain batch driver. But I will see how the testing goes.
WIP are the runtime changes required for the client-side code to coexist in the server context. I can't give a good estimate how far is this. But at the moment I am still facing many issues to resolve.
#19 Updated by Hynek Cihlar about 1 year ago
Greg, I was under an impression this issue was to allow some limited set of UI statements in business logic running in the application server context on the server (I was aware of MESSAGE and FRAME). But yesterday on the status meeting you mentioned issue #10009 and reports that must be executed on the server, too.
Having reports on the server may extend the scope of the implementation as the full set of UI features will need to be runnable on the server.
Please clarify.
#20 Updated by Greg Shah about 1 year ago
Please check with Lorian who is working on those report tasks. If that code is executed in the appserver agent, then we do indeed need the full redirected terminal to work.
That was my understanding.
#21 Updated by Hynek Cihlar about 1 year ago
Greg Shah wrote:
Please check with Lorian who is working on those report tasks. If that code is executed in the appserver agent, then we do indeed need the full redirected terminal to work.
That was my understanding.
Lorian, please confirm.
#22 Updated by Hynek Cihlar about 1 year ago
+Lorian
#23 Updated by Hynek Cihlar about 1 year ago
Hynek Cihlar wrote:
Greg Shah wrote:
Please check with Lorian who is working on those report tasks. If that code is executed in the appserver agent, then we do indeed need the full redirected terminal to work.
That was my understanding.
Lorian, please confirm.
Lorian, please see above.
#24 Updated by Hynek Cihlar about 1 year ago
I created 9055a and checked in the early work. The branch allows non-alert box MESSAGE executed in server context.
#25 Updated by Lorian Sandu about 1 year ago
Greg Shah wrote:
Please check with Lorian who is working on those report tasks. If that code is executed in the appserver agent, then we do indeed need the full redirected terminal to work.
That was my understanding.
The UI code from the reports is not executed on the appserver. There is a .sh script that starts a ClientDriver that would execute it.
#26 Updated by Greg Shah about 1 year ago
Great!
Hynek: keep going with your plan and we will need to test that application once you have enough implemented.
#27 Updated by Hynek Cihlar about 1 year ago
I'd like to start testing my changes in the customer app. What instructions are best to use? Also, which person is the right one to bother with this?
#28 Updated by Lorian Sandu about 1 year ago
I can help with running harness or smoketest if needed.
#30 Updated by Hynek Cihlar about 1 year ago
- Status changed from WIP to Review
- % Done changed from 40 to 100
- reviewer Constantin Asofiei, Greg Shah added
9055a is ready for review.
#31 Updated by Hynek Cihlar about 1 year ago
9055a fixes the regression mentioned in #10216-53. Please review.
#32 Updated by Constantin Asofiei about 1 year ago
Hynek Cihlar wrote:
9055a fixes the regression mentioned in #10216-53. Please review.
Thanks, looks good.
#33 Updated by Constantin Asofiei about 1 year ago
- Related to Bug #10313: server-sidef file-system must 'mount' user's working dir and look in this path by default added
#35 Updated by Hynek Cihlar 12 months ago
9055a passed GUI regression tests. I'm still not happy with the ChUI results, so ChUI testing is ongoing.
#36 Updated by Hynek Cihlar 12 months ago
9055a passed ChUI regression tests. There are about 6 tests that fail, but the same failures are also in trunk.
#37 Updated by Hynek Cihlar 12 months ago
I rebased 9055a against latest trunk and added file history entries. Please review, the branch is ready to be merged to trunk. After the merge some changes will be needed for one customer GUI app.
#39 Updated by Sergey Ivanovskiy 12 months ago
Hynek Cihlar wrote:
9055a passed ChUI regression tests. There are about 6 tests that fail, but the same failures are also in trunk.
Hynek, could you please report these failed tests in #7143 to be known for all.
#40 Updated by Hynek Cihlar 12 months ago
Sergey Ivanovskiy wrote:
Hynek Cihlar wrote:
9055a passed ChUI regression tests. There are about 6 tests that fail, but the same failures are also in trunk.
Hynek, could you please report these failed tests in #7143 to be known for all.
All of these were duplicates of already reported failures.
#42 Updated by Hynek Cihlar 12 months ago
9055a rebased against latest trunk.
#44 Updated by Hynek Cihlar 12 months ago
- Status changed from Internal Test to Merge Pending
9055a regression testing passed.
#45 Updated by Alexandru Lungu 12 months ago
Please merge 9055a to trunk now.
#46 Updated by Hynek Cihlar 12 months ago
- Status changed from Merge Pending to Test
9055a rebased and merged to trunk revision 16094 and archived.
#47 Updated by Hynek Cihlar 3 months ago
- Related to Feature #11371: full server-side support of FWD clients added