Persistate

Potential Investors Please Read!

Hide Navigation Pane

Potential Investors Please Read!

Previous topic Next topic No directory for this topic  

Potential Investors Please Read!

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for the print function Mail us feedback on this topic!  

This page has been written specifically for individuals or companies who are considering investing in Persistate.  It lists sets of potential customers who would be interested in the Persistate product, lists features that makes Persistate such a good product, and answers the most obvious questions that potential investors might have.  In addition, potential investors will be interested in the From the Author page, especially the Get Involved section.

Potential customers

If you invest in Persistate, then you will obviously want to know who you will be able to sell it to, so here are three sets of customers that can be particularly targeted. The first of these is a new and really exciting opportunity, and could provide an important revenue stream.

Clients for a new type of cloud service

Persistate can be the basis of an entirely novel online service allowing entrepreneurs and power users, rather than software developers, to create line of business applications, and have them immediately hosted in the cloud.  This would be especially interesting for start-ups, giving them real control over their IT infrastructure.  The intuitive English definition language means that there would be much less reliance on specialist designers and developers.  A wizard based front end providing pre-written snippets along with simple customisation will make it even easier.  Where business logic or specialised user interface formats need to be coded, the generated framework and method stubs in the Controller make it easy to delegate this to, say, crowd-sourced developers.

Small to medium IT departments

The IT departments of small to medium companies are often asked to provide bespoke line of business IT services on limited budgets.  Such departments also often have developers who are less experienced and would benefit greatly from any helping hand making their professional lives easier.  Persistate will be very attractive to these departments, allowing them to quickly create the main structure of line of business applications and prototype user interfaces.  The simple access to the persistent data and the user interface, and the hand-holding provided by the generated classes and business logic method stubs, will help less experienced developers complete any necessary coding.

Software houses providing bespoke line of business applications

Persistate would provide many advantages for such software houses.  Development times would decrease, since Persistate creates so much common infrastructure.  Persistate allows easy reuse of packages.  Prototypes can be created in double quick time for clients.  Persistate, with all UI types completed, will provide very flexible deployment options.  In fact, such a software house may well wish to invest in Persistate!

What makes Persistate so good

Persistate provides many boosts to the development process, and many other advantages to software developers.  Here are some of the main ways in which Persistate provides these advantages.

It generates ready to run applications of arbitrary complexity

From a single definition file, Persistate generates an entire application, including database(s), which rigorously follows the well known Model View Controller architecture.  The generated application is immediately ready to run in both stand alone and Viewer-Server mode.  Persistate generates a considerable amount of code for the defined classes, which reduces the reliance on reflection to perform functions such as movement of data to and from persistent storage or between Controller and User Interface (MVC view).

Its application definition language is a true step forward

The Persistate definition language is very interesting.  It reads as correct English, and so is very intuitive and easy to write.  Also, it operates at a much higher semantic level than SQL, and the information it contains is much more pertinent in the business domain.  It hides lower level implementation details, and offers a purer description of business level information.  Amongst the many advantages of this is that, for example, Persistate can extract the English language names for application elements and use them directly in the user interface it generates.

It provides full separation of user interface from business logic

The formal separation of User Interface (UI) and the business logic in the Controller is very important.  This separation is absolute and based on abstract classes and interfaces.  Although for the moment there is only a windows forms based UI, when other types are implemented, the Controller will not know the type of the UI, nor even where it is.  Even now, the UI can be hosted in either the same computer, or can be running in the Persistate Viewer in a remote location.  The Controller-UI communication is two-way, the Controller displaying data in the UI and the UI requesting execution of business logic by the Controller.  Running in a Persistate Server, the same Controller can service sessions from different types of UI simultaneously.

It has a powerful and scalable object storage architecture.

A 64 bit reference physically addresses a single object within a domain, which can contain thousands of databases.  This domain is split into any number of environments, each of which can hold the data for any number of packages (applications).  A package can be made available in more than one environment, and will have a separate data-set in each.   Packages can access each other's data, UI and business logic, allowing very easy but controlled inter-operation between packages.  Conceptually, an entire Persistate domain is a single tree of objects, which is distributed over all the databases in the domain.  Single referenced objects can be held in any database, and collections can also be distributed over more than one database.

Its formality enhances the robustness of applications

Persistate enforces formal interfaces between the application modules Model, User Interface (View) and Controller.  This has two effects.  The first is that it makes using these interfaces very easy.  Being formal limits the ways that you access these interfaces, meaning that there is less to learn.  The second is that since these well defined interfaces are the only way to communicate between models, then there is much less scope for incorrect usage and errors creeping in.  For example, the interfaces from other modules to the Model, control all movement of data to and from persistent storage.  This provides a tremendous improvement in the potential robustness of Persistate applications.

Obvious questions that an investor will ask

If you have an obvious question you think should be in here, please get in touch!

Why is there only a desktop (Windows Forms based) user interface?

This was a deliberate decision.  At the point where development of a browser based UI was to begin, there was doubt over the technology to use - Silverlight?  Flash?  HTML4?  HTML5?  In the end, it was decided to postpone the decision and work on completing the Controller/UI interface instead, along with the Server/Viewer protocol.  This latter will be used to communicate with all remote UI types.  It is also important to realise that the set of formats (UI elements) available to date comprise only a demonstration set.  These will be complemented by many more including multimedia elements, charts and graphs, links to documents, etc..

Can Persistate handle completely customised user interfaces?

Not yet, but it will.  For now, there is a fixed set of formats available for each particular type of data.  The plan is to introduce a plug-in format scheme, which will allow developers to provide their own user interface classes and link them to particular data types.  User defined formats will range from simple controls showing a single primitive datum, through more complex controls showing an object, specialised views of collections of data or objects, all the way up to a full container visualising an entire object graph.  These formats will be shown as elements in a form or grid, or as forms themselves.  Given that a UI workspace can be a single pane showing a single form, this means that the entire visible UI can be user customised.

Can Persistate really generate an entire application?

Persistate really does generate an application which can be immediately run.  If the application is required to just enter and retrieve data, even highly structured data of arbitrary complexity, then no more is required.  If an application has specific functional requirements, then these will have to be developed.  However, Persistate does allow you to formalise these requirements, and generates stub methods for them, ready for coding, and already linked to triggers in the generated UI.  This scheme provides distinct advantages; a major one is that it delimits and formalises the work to be performed by developers, greatly simplifying a customer's interaction with them, and allowing  scenarios such as crowd-sourced development to be a real possibility.  Such development can be part of the service offering!

Persistate seems to reduce flexibility - can this be good?

Persistate does impose a high level formality on the developer, and this on the face of it does reduce flexibility.  This is a classic trade- off.  More complex interfaces provide more degrees of freedom, but are more difficult to learn and make it easier to make mistakes.  Less complex interfaces provide fewer degrees of freedom but are easier to learn and make it more difficult to make mistakes.  So although you certainly have reduced degrees of freedom in Persistate's interfaces, the key factor here is their quality - in other words their usefulness to complexity ratio.  There are two factors which affect this.  Firstly, Persistate has freely evolved over a lengthy period, without any backwards compatibility issues.  Secondly, Persistate's author (see From The Author) has had a tremendous amount of experience in software development, in many roles and many industry sectors.  This combination has led to Persistate having an industry leading usefulness to complexity ratio.

Is Persistate in a working state?

This depends on the target market.  For the second and third set of Potential Customers above, it could be used right now.  Of course, there is no browser based interface, but for many users this need not be a show stopper, since the Viewer-Server mode means that only the very simple viewer application need be installed in workstations.  In fact, many companies would welcome a system which runs in a server but doesn't need a browser in the workstations.  Of course, Persistate is still in the beta test stage, so further testing is required.

How much remains to be completed?

Again, this depends on the target market, and also on the definition of complete!  There are a number of major items to do which would be required to enable most potential customers to use it.  Then there are enhancements which would increase its capabilities, and/or increase the potential customer base.  Here is a list of items for version 1, not all of which will be required in all circumstances.

Browser based user interface. This would comprise of three parts - the classes and code snippets required for each format, the Javascript infrastructure, and the code required to generated forms and grids.
Mobile user interfaces.  Touch enabled user interfaces for Windows Phone, Android and iOS devices.
User interface formats.  There is currently just a basic set of user interface formats available (such as text box, checkbox, grid, etc.), and no way for the developer to add new ones.  Version 1 will have a plug-in system allowing the developer to supply format classes, and the standard set will be much enlarged.
Database support.  Currently, Persistate supports SQL Server and MySQL.  Version 1 should support a range of other DBMSes, including at least one in-process 'compact' system.
Full security.  Persistate does have a basic security model in the current version which permits particular users to run particular packages.  However, a fully featured security model for version 1 which provides more granular targeting has already been designed.
Service website.  For the new type of cloud service mentioned at the top of the page, the website to provide the means for users to create their applications.  Of course, this itself would be a Persistate application with a browser based UI!