As software engineers we've blended mobile, real-time and multi-user into our live CMS (Content Management System)
Jul 2018
A Live and Multi-User CMS
John Ince
What's CMS?
We wont dwell on this. If you want to know more head off and google it! Put simply, the ability to manage your own website/online content including literals, products, images and so on. Change your website by yourself without the need for a web designer. That's essentially it. But we've gone a whole lot further than this....
What's Multi-user?
In a world of individual devices, mobiles and laptops, with apps you install the concept of multi-user has been somewhat lost. We seem to work on our own and share stuff these days. Multi-user does live on in multi-user games and corporate IT systems. Websites are multi-user aren't they? Yes, but perhaps best at read only operations, everything else in this web world requires a little kludge (back to that in a bit). In days of old, when mainframe computers ruled the world, multi-user was a problem that need to be addressed. Many users with access to the same data simultaneously and the ability to update the information simultaneously. Most user's data updates are like ships in the night, there's never two users updating the exact same data at the exact same time. But what if there was? As software engineers we need to handle this event in some way otherwise users end up overwriting each others changes at the very least. This is hard enough on local networks with desktop applications but even harder with websites and web applications since we lack 'state'. Back to the kludge. 'State' in a computer system is the knowledge of past and current events, in loose terms who's doing what and where. Without 'state' you don't even know that there are any other users. The Internet is basically a 'stateless' world where users in browsers connect, retrieve and disconnect for each request. To preserve state we can kludge a session in some way, via cookies or URL mangling or something entirely different. Using this kludge browsers identify themselves to the server with each visit. The server can then work save and maintain state. A workaround to the fact that HTTP is basically a document retrieval system that's being used to mimic applications that need real 'state'. So how's our 'state'?
Cloud hosted Web Applications are 'State' Perfect
We've put a lot of effort into what most software engineers ignore, 'state'. If you're going to implement a true multi-user system in a web browser you need better than a kludge. Our web applications run in the cloud and maintain 'state'. We know who's connected and what they are doing because of our smart connections, a two way, persistently connected data channel. We don't make and break our connection constantly. Remember too, only our user interface is in the browser, the real running code is in the cloud. Since we have perfect 'state' we know what all our users are doing and update our user interface accordingly.
Data Locking for Updates
Basics. In a multi-user system if you start editing some data you don't want others overwriting your changes. Take a look at the figure below. The user 'Anonymoose' is changing their first name. See the little lock on the right hand side of the field with the user's avatar and padlock. In our admin panel's users section other administrators can change the user 'Anonymoose' details. What if someone starts an admin panel edit right now? Simple we'd lock out the first name field until the first user exits it. Anything they type is reflected in real-time over to the admin panel. Our user's see the changes as they are made, not on refresh.
A Live and Multi-User CMS
Feature Locking for Updates
We can lock out entire features during a user update. Take a look at the figure below. We've two admin users. We've docked two browser windows together to show concurrent access to the same feature. The admin user on the right is editing the home page, the other admin user on the left is trying to right click to edit the home page, notice the little padlock. Once the editing admin user exits the popup the waiting admin can gain access. Of course all connected users viewing the home page will see the admins update live without refresh. Since we code our framework we can work with whatever level of locking granularity fits the purpose, from a field to a page. Into the future we've a backlogged story to add the locking user's image to the popup menu with the option to start a conversation, since it's possible to lock the feature by walking away from your desk with the dialog open.
A Live and Multi-User CMS
Same Form, Same Data, Two Users
Two users working the same data in the same form. Our live framework support concurrent forms with field level locking. It simply means that only the field in the form that a user is editing are actually locked to other users. As the locked field user any changes made are reflected live to other viewers. It's as you type technology. Everyone gets to see what everyone is typing in real-time and no changes overlap or are overwritten. When an editing user makes the save then the field becomes unlocked for other user's edits. It's remote working that's real multi-user.
A Live and Multi-User CMS
How Far Can we go with Live Technology?
Because of our perfect 'state' we can push our live technology to bring WebApps alive. How about your web statistics? Consider what we can do. See users arrive, exactly what pages they are navigating, if they add something to a cart, filling out a checkout form in real-time, start a text conversation or simply gather statistics that are right up to date. What about when an eCommerce admin changes a product price? What if someone is looking at the very same product? We update live. What if you start a discount sale and several customers are viewing a product in the new sale? Shouldn't they know without a refresh, shouldn't it just appear in the page? What if an admin adds a new product? Shouldn't everyone viewing know without having to press refresh? We believe our smart connections bring web applications alive with live data. What we do with real-time if restricted only by our, and your, imagination. What can we build for your online business?
Doing it differently since 2012. We're simply 10 years ahead. Our software is designed, coded, maintained, supported & hosted in the United Kingdom.
Why Project Peach?
The Hawthorn Gallery
DBD International
Knot 2b Missed
Monero Mine
About Us
Contact Us
Pay Us
Copyright 2020 Project Peach