v5.0.1 scenario 2 - development server with multiple clients

Post any questions regarding Installing or Upgrading Ebase, including problems starting up the Ebase Xi Server or Designer

Moderators: Jon, Steve, Ian, Dave

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

v5.0.1 scenario 2 - development server with multiple clients

#1

Postby Steve James » Wed Jan 20, 2016 12:43 pm

Hi, the upgrade document states
"In this scenario, a team development server is used and multiple designer clients from separate machines connect to it. "

"This upgrade document does not include all the steps to convert all users in this scenario – contact Ebase support for advice."
I know that the recommendation is to have local development servers but this is a massive change from 4.5.4. We have specific issues with client machines directly connecting to databases.

In this scenario is the approach?
1 developer writes form
2 deploy to DEV
3 run form
loop to 1 repeatedly

Thanks
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#2

Postby Jon » Wed Jan 20, 2016 12:54 pm

No, that doesn't sound very productive. The idea is that a developer develops and tests a form on their own local machine, then deploys it (maybe to a test system) when they are happy with it. This in turn implies that it is possible to connect to test databases from each developer's machine. If this is a problem, do you have the option of creating test databases locally on developer machines?
0 x

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

#3

Postby Steve James » Wed Jan 20, 2016 1:17 pm

Hi
Do you have the option of creating test databases locally on developer machines?
This is not feasible at all, the issue is currently Oracle and we have forms that connect to 3rd party applications/databases including
  • CRM
    Planning
    Highways
    Social Care
A related issue we have is any PC that has direct connectivity to an Oracle database needs to have a static IP address which only works in 1 location. This is to do with Oracle security recognising our asset names as IP addresses because the name starts with a zero. In the future we may push Ebase clients onto a virtual desktop but there are much more needy applications above us in the list.

It's not that we definitely cannot have clients connect direct to a database but we have to jump through hoops to justify the reason.

Thanks
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#4

Postby Jon » Thu Jan 21, 2016 5:57 pm

I wonder if it's possible to proxy accesses to your oracle databases - a quick google search implies that it should be. Then all developer clients could go via the proxy and security could be applied to this.

From a wider perspective, I do think that the V5 approach - where each developer has their own development environment with connections to any databases they need - is the "correct" approach. The V4 approach with a centralised development server is now pretty much outdated and it's very hard to implement version control on this model. I know this remark doesn't help you with your problems!
0 x

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

#5

Postby Steve James » Thu Jan 21, 2016 7:56 pm

Hi Jon, thanks for the reply.

I guess some of this comes down to what you define as an Ebase developer? One of the big selling points of Ebase used to be the capability of having form writers who were not technical developers. We used to have non IT people writing forms (or parts of forms) and IT technical staff bolting stuff on for consumption. A form writer may not need to know how to connect to the database or have no knowledge of sql as they simply fetch/update a table that has been written/configured for them.

Ebase appears to be departing away from this approach in other areas like client side programming and the palette entities not being widened (eg dialogs,trees,accordions). Not a negative point as the power of the product is moving in other directions.

From a security perspective we need to know/restrict/limit who is connecting to a database and by device. I understand that there is potential for us to widen this approach onto MSS.

There is often the argument that it's only a development database. But where we interact with large 3rd party applications there is the risk that the non production environment holds real (or close to real) data. We use Ebase as an integration mechanism (and excellent it is too).

At this time all bar 1 of our Ebase form writers are IT staff so we can have reserved IP addresses and the device has explicit permissions to connect to the databases. It does limit our capability / increase the complexity to have users doing some form stuff but it is manageable.

Of course we still have the external server approach that may work in some situations eg very small workspace where the designer points at the workspace on the server - something I'll look at tomorrow. I looked at a remote workspace sometime ago but it was way too big to be workable.

Not quite ramblings but getting close :)
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#6

Postby Jon » Fri Jan 22, 2016 8:54 am

I think you'll find that a networked workspace is too slow. The designer is constantly checking the file system for changes and I think you will notice this - the message Refreshing Entity Tree... appears on the info bar at the bottom of the designer.

You are right in your remarks about how we perceive an Ebase developer - there has been a gradual move over the years in the direction of thinking of a developer as an IT professional or something quite close to this.
0 x

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

#7

Postby Steve James » Fri Jan 22, 2016 9:21 am

Thanks Jon, I'm in a remote office today and it isn't working at all.

Daft question but if the client is looking on a local file system then why does it have to constantly monitor the file system for changes? That is won't a designer either create new resources or import from within the designer?

That'll explain why I am getting the odd slow goings on when I was working with my full DEV tree in a single workspace (c12k files; c3k folders; 55mb). I think ultimately I'll be happier working on a subset of the entire tree as it makes for less clutter.

Thanks
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#8

Postby Jon » Fri Jan 22, 2016 10:33 am

Daft question but if the client is looking on a local file system then why does it have to constantly monitor the file system for changes? That is won't a designer either create new resources or import from within the designer?
It's because you are allowed to make changes to the workspace outside of the Ebase designer, and we are anticipating that this will happen. So you can just copy files/directories/projects straight into the workspace using operating system tools and the designer will react - this is an alternative to using import/export. Similarly you can delete things. But there are performance implications to this: each time you change the focused window to the designer e.g. change from browser to designer, the file system is checked for changes. How long this takes depends on the size of the workspace and the performance of the disk.

Another aspect of this is that the designer maintains a data dictionary database for each workspace and this is also updated when the workspace is changed externally. The performance of this database also depends on the size of the workspace and the performance of the disk. You see Updating Data Dictionary.. in the info bar when these updates are occurring. This blocks some functions (not everything) in the designer.

It may well make good sense to split one large workspace into multiple small workspaces in the designer environment.
0 x

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

#9

Postby Steve James » Fri Jan 22, 2016 3:25 pm

Thanks Jon, hopefully my findings / comments will help others in the future.

I've created a svn repository and committed the full Workspace as generated as part of our upgrade. I use tortoiseSVN client side but the .svn folders and contents show in the designer which isn't brilliant. The .svn folders are also included in searches.


I need to work on a form contained with a business project (v4.5 term) so I created a workspace by Checking Out the following
  • The business project.
    The "GLOBAL" project (v5 term)
    The "Shared" project
This was an iterative process as initially I deliberately only checked out the main business project. Ebase whinges nicely to indicate what was missing so I could just check out the appropriate other projects.

Is the recommendation to move resources that are in Shared but not used in other projects under the 'parent' project?

If so is there any easy way of doing this other than drag/drop? Drag/drop isn't good when you have a very long list of entities. There is no longer a move option and cut/paste breaks the references.

If not then are there any recommendations as to how to manage the large Shared project? It is 16Mb so the refresh entity tree and data dictionary has a noticeable lag.

I like the fact that I can have all related resources under 1 project but of course we have 4.5 tree upgraded into a massive Shared project. I have a feeling that an option to have manual/auto refresh of the tree may be useful. If I change the file system I am quiet happy to hit a button to refresh the tree rather than having a laggy application every time it regains focus.

Thanks
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#10

Postby Jon » Fri Jan 22, 2016 4:24 pm

Is the recommendation to move resources that are in Shared but not used in other projects under the 'parent' project?
No, this is entirely up to you. Version 5 makes it possible to make everything much tidier which is obviously attractive, but this has to be balanced against the amount of time it takes to refactor everything. It might make sense to leave the Version 4 upgraded forms in the upgraded structure, and then do things differently for new forms.
If so is there any easy way of doing this other than drag/drop? Drag/drop isn't good when you have a very long list of entities. There is no longer a move option and cut/paste breaks the references.
No, drag/drop is the only way to automatically refactor the references. However, if you keep the path to each resource the same, no refactoring is required and you can just move the files outside of the designer e.g. if you move resource files from Shared/Resources/Database_resources to MyProject/Resources/Database_resources, everything should work OK (assuming the resources aren't used outside of MyProject).
I have a feeling that an option to have manual/auto refresh of the tree may be useful.
Yes, we might introduce this as an option. The current behaviour is really there so it works smoothly with SVN/CVS etc. Changes are immediately visible in the designer, including open entities.
0 x

Steve James
Ebase User
Posts: 331
Joined: Mon Mar 10, 2014 8:34 am

#11

Postby Steve James » Fri Jan 22, 2016 4:50 pm

Thanks Jon,

I think the following may need to be looked at? Some sort of 'ignore' folders option in the designer?
I use tortoiseSVN client side but the .svn folders and contents show in the designer which isn't brilliant. The .svn folders are also included in searches


If Ebase is promoting SVN then I think the designer should be able to avoid the thing that it is promoting.

No, drag/drop is the only way to automatically refactor the references. However, if you keep the path to each resource the same, no refactoring is required and you can just move the files outside of the designer e.g. if you move resource files from Shared/Resources/Database_resources to MyProject/Resources/Database_resources, everything should work OK (assuming the resources aren't used outside of MyProject).
Yes that works nicely when using BeyondCompare outside of the designer, easy to copy/move entities to the parent project, et voila.....

No, this is entirely up to you.........
Good stuff, new forms using self contained projects and we'll probably 'fix' v4 forms when we need to make a change. Over time the Shared project will reduce in size.


Good progress made at this end on Ebase v5.
Have a good weekend.
0 x


Who is online

Users browsing this forum: No registered users and 85 guests