Several business spaces with a single database
Several business spaces with a single database
Could it be possible to create modules in AwareIM in such a way that they can be divided into several business spaces with a single database?
Javier Cortes Ayus
Version 9.x (Testing)
OS: Ubuntu 20.04.6 LTS - DB: MySQL
Version 9.x (Testing)
OS: Ubuntu 20.04.6 LTS - DB: MySQL
Re: Several business spaces with a single database
Curious what you are trying to accomplish.
Tom - V8.8 build 3137 - MySql / PostGres
Re: Several business spaces with a single database
Interesting question.
I have a situation where the organisation wants an enterprise data model implemented, and to have numerous applications accessing it (they want to go back to bespoke development for core functionality -they are well and truly over vendors and SAAS providers). Each of the applications would have a small number of users who manage a subset of the corporate functionality, but from a data perspective, it all needs to come together.
AwareIM would be a time and cost effective solution to this scenario, but currently is constrained by having the bsv tied to its own database (or so I believe - happy to be told I am wrong).
One solution I did think of was to define an external database, and link each AwareIM application to that. I appreciate you lose some great functionality, such as business object groups, but sort of meets the brief.
Does anyone know of any technical reasons why the external database approach wouldn't work (eg: would there be locking issues) ?
All thoughts are welcome.
I have a situation where the organisation wants an enterprise data model implemented, and to have numerous applications accessing it (they want to go back to bespoke development for core functionality -they are well and truly over vendors and SAAS providers). Each of the applications would have a small number of users who manage a subset of the corporate functionality, but from a data perspective, it all needs to come together.
AwareIM would be a time and cost effective solution to this scenario, but currently is constrained by having the bsv tied to its own database (or so I believe - happy to be told I am wrong).
One solution I did think of was to define an external database, and link each AwareIM application to that. I appreciate you lose some great functionality, such as business object groups, but sort of meets the brief.
Does anyone know of any technical reasons why the external database approach wouldn't work (eg: would there be locking issues) ?
All thoughts are welcome.
Re: Several business spaces with a single database
I'm surprised that no-one has posted some thoughts here.
To re-focus the question, I'd be interested to read how you have implemented an enterprise set of solutions using AwareIM. I suppose the obvious approach is to build one bsv covering all users and functions, but I was wondering whether anyone saw merit in having multiple, smaller bsv's accessing the enterprise database - smaller number of users per bsv, less change impact for releases etc.
To re-focus the question, I'd be interested to read how you have implemented an enterprise set of solutions using AwareIM. I suppose the obvious approach is to build one bsv covering all users and functions, but I was wondering whether anyone saw merit in having multiple, smaller bsv's accessing the enterprise database - smaller number of users per bsv, less change impact for releases etc.
Re: Several business spaces with a single database
I would agree, going separate databases could become a nightmare to manage, especially if you have to share data between the applications.I suppose the obvious approach is to build one bsv covering all users and functions,
Why would you want to do this other than ease of update, a single DB would be easier in my mind.
Also, an organizational structure built into the design of the system would be key to its success
-
- Posts: 1460
- Joined: Tue Jan 24, 2017 5:51 am
- Location: 'Stralya
Re: Several business spaces with a single database
If your data is completely silo-able then it might be possible, but you'd need almost perfect demarcation of data ownership which may be difficult to achieve.
If you use the default application (I.e. the one you created when you set up AIM) all the data would be in the one database, each system that was borrowing data would have to connect to the other system as an external database or via API processes. This would allow you to connect with an external report writer into one database, but obviously as AIM doesn't write foreign keys in the way that the RDMS recognises (reverse engineering the schema for example just pulls a lot of seemingly unrelated tables into an ERD)
You'd technically have the data in the one database (albeit with table names identifying their owning AIM system).
I think this approach would run the risk of being quite brittle though and if you were to migrate it or try to replicate it there would need to be a lot of different controls in place.
If you use the default application (I.e. the one you created when you set up AIM) all the data would be in the one database, each system that was borrowing data would have to connect to the other system as an external database or via API processes. This would allow you to connect with an external report writer into one database, but obviously as AIM doesn't write foreign keys in the way that the RDMS recognises (reverse engineering the schema for example just pulls a lot of seemingly unrelated tables into an ERD)
You'd technically have the data in the one database (albeit with table names identifying their owning AIM system).
I think this approach would run the risk of being quite brittle though and if you were to migrate it or try to replicate it there would need to be a lot of different controls in place.
Re: Several business spaces with a single database
Hi ACDC,
Thanks for sharing your thoughts. I agree that one enterprise database does make data access super simple. I was thinking (though I am not technical, so could be way off) that separate bsv's would improve performance by having them run on different servers etc. They would also eliminate any potential scalability issues which may arise by having a few thousand users accessing the one application.
Thanks for sharing your thoughts. I agree that one enterprise database does make data access super simple. I was thinking (though I am not technical, so could be way off) that separate bsv's would improve performance by having them run on different servers etc. They would also eliminate any potential scalability issues which may arise by having a few thousand users accessing the one application.
Re: Several business spaces with a single database
Hi Pointswell,
Thanks for sharing your thoughts also. It sounds like having several bsv's accessing one external database is not a good idea, as it is fighting the AwareIm concept.
Thanks for sharing your thoughts also. It sounds like having several bsv's accessing one external database is not a good idea, as it is fighting the AwareIm concept.
Re: Several business spaces with a single database
Perhaps in the future some time.. we could have the ability to allow a BO to be shared between BSV’s, as opposed to sharing the entire database.. by ticking a box, and/or selecting the BO from a different BSV. That way we can create smaller specialised bsv’s .. say for eg. One for the client, one for the company users, one for management or admin… or whatever.. and have the benefits of seperate BSV’s as per other’s comments, as well as maintaining AwareIM’s control over the data/database.
This would be useful, for eg.. by allowing say the customers app (bsv) to be simple and easily maintained and always ‘pretty’ and super user friendly… while at the same time being able to create powerful and detailed functions for company or admin users without having to make sure you haven’t broken the customer’s experience.
One example of sharing data in this case would be documents. It would be extremely useful to be able to give customers access to whatever documents you want (eg.. POD’s or invoices) and keep them maintained from the company’s app, without having to duplicate the data, or try to maintain it in an external db.
This would be useful, for eg.. by allowing say the customers app (bsv) to be simple and easily maintained and always ‘pretty’ and super user friendly… while at the same time being able to create powerful and detailed functions for company or admin users without having to make sure you haven’t broken the customer’s experience.
One example of sharing data in this case would be documents. It would be extremely useful to be able to give customers access to whatever documents you want (eg.. POD’s or invoices) and keep them maintained from the company’s app, without having to duplicate the data, or try to maintain it in an external db.
V8.8 / Windows / MySQL
Re: Several business spaces with a single database
I define several access levels, each has its own Visuable perspective (use at login). That way I can not only define in the access level what users can and can’t see/edit but also give each access level it’s own set of menus via its VP.
So a mere mortal (member) never gets to even see any of the accounting functions apart from their own account statements, whereas the accountant can see and manipulate all the financial transactions, do period ends etc, and the GDPR compliance officer can tidy up the personal data.
I can also define certain “roles” (just tick boxes on a persons master record) and by using “not present when” at the VP level, can make folders with sub menu items appear for people with different access levels. So a “member” can also be an aircraft officer - but so can an Operations manager or a team leader.
By using these things in combination, the possibilities with AwareIM are endless. There is (in my opinion) no need to change anything.
So a mere mortal (member) never gets to even see any of the accounting functions apart from their own account statements, whereas the accountant can see and manipulate all the financial transactions, do period ends etc, and the GDPR compliance officer can tidy up the personal data.
I can also define certain “roles” (just tick boxes on a persons master record) and by using “not present when” at the VP level, can make folders with sub menu items appear for people with different access levels. So a “member” can also be an aircraft officer - but so can an Operations manager or a team leader.
By using these things in combination, the possibilities with AwareIM are endless. There is (in my opinion) no need to change anything.
Rocketman
V8.7 Developer Edition. Server 2016 Standard edition. MySql 5.5
V8.7 Developer Edition. Server 2016 Standard edition. MySql 5.5
-
- Posts: 2405
- Joined: Mon Jul 02, 2012 12:24 am
- Location: Ulaanbaatar, Mongolia
Re: Several business spaces with a single database
FWIW.... I would do it all in a single Business Space.
You can compartmentalise to a certain degree using CATEGORY FOLDERS for sure. But modularising in seperate Business Spaces would introduce an entire pandoras box of problems.
You want to avoid dealing with External Database wherever possible and while it is certainly possible to communicate (mind you, I have not tried this but our Mobile Apps created in Appgyver use REST for ALL communications with Aware so I assume BS2BS would also work) it is an extra layer of complexity that needs to be managed.
I have proposed an idea to Vlad to implement the notion of a WorkFlow which would make it much easier to manage large applications.
Similar to a Business Object Group..... in the Left Menu Tree you would see Workflows. You create a New Workflow with a suitable name (Workflows would also be able to have Categories). In each Workflow, you will be able to add Business Objects, Queries, Processes, Documents, Notifications and Services that are used in that Workflow. Elements can be members of multiple WorkFlows. For any Element, there should be a way to see what Workflows it is a member of.
IMO, this would be a really big help, especially when Applications start getting large.
Our Flagship product, EZISTAFF is growing ... see image below .... so introducing WorkFlows would be a boon.
You can compartmentalise to a certain degree using CATEGORY FOLDERS for sure. But modularising in seperate Business Spaces would introduce an entire pandoras box of problems.
You want to avoid dealing with External Database wherever possible and while it is certainly possible to communicate (mind you, I have not tried this but our Mobile Apps created in Appgyver use REST for ALL communications with Aware so I assume BS2BS would also work) it is an extra layer of complexity that needs to be managed.
I have proposed an idea to Vlad to implement the notion of a WorkFlow which would make it much easier to manage large applications.
Similar to a Business Object Group..... in the Left Menu Tree you would see Workflows. You create a New Workflow with a suitable name (Workflows would also be able to have Categories). In each Workflow, you will be able to add Business Objects, Queries, Processes, Documents, Notifications and Services that are used in that Workflow. Elements can be members of multiple WorkFlows. For any Element, there should be a way to see what Workflows it is a member of.
IMO, this would be a really big help, especially when Applications start getting large.
Our Flagship product, EZISTAFF is growing ... see image below .... so introducing WorkFlows would be a boon.
Cheers,
Mark
_________________
AwareIM 6.0, 8.7, 8.8, 9.0 , MariaDB, Windows 10, Ubuntu Linux. Theme: Default, Browser: Arc
Upcloud, Obsidian....
![Image](http://imageshack.com/a/img922/5940/UmAdK9.png)
Mark
_________________
AwareIM 6.0, 8.7, 8.8, 9.0 , MariaDB, Windows 10, Ubuntu Linux. Theme: Default, Browser: Arc
Upcloud, Obsidian....
![Image](http://imageshack.com/a/img922/5940/UmAdK9.png)
-
- Posts: 1460
- Joined: Tue Jan 24, 2017 5:51 am
- Location: 'Stralya
Re: Several business spaces with a single database
Off topic
Mark, did you manually create all the foreign key relationships to your DB? Or do you have some magic way to create those to then map your ERD?
Mark, did you manually create all the foreign key relationships to your DB? Or do you have some magic way to create those to then map your ERD?
-
- Posts: 2405
- Joined: Mon Jul 02, 2012 12:24 am
- Location: Ulaanbaatar, Mongolia
Re: Several business spaces with a single database
Oh, I wish! ![Wink ;-)](./images/smilies/icon_wink.gif)
All Manual.
![Wink ;-)](./images/smilies/icon_wink.gif)
All Manual.
Cheers,
Mark
_________________
AwareIM 6.0, 8.7, 8.8, 9.0 , MariaDB, Windows 10, Ubuntu Linux. Theme: Default, Browser: Arc
Upcloud, Obsidian....
![Image](http://imageshack.com/a/img922/5940/UmAdK9.png)
Mark
_________________
AwareIM 6.0, 8.7, 8.8, 9.0 , MariaDB, Windows 10, Ubuntu Linux. Theme: Default, Browser: Arc
Upcloud, Obsidian....
![Image](http://imageshack.com/a/img922/5940/UmAdK9.png)
-
- Posts: 1460
- Joined: Tue Jan 24, 2017 5:51 am
- Location: 'Stralya
Re: Several business spaces with a single database
EXCELLENT Workflow idea, Mark!
Tom - V8.8 build 3137 - MySql / PostGres