Jump to content

Recommended Posts

Posted
Again, pleading ignorance, but is SQL (the language) not a perfectly usable database API? Will another API setting above that really help? If the DB is well structured and documented what more do you need to produce your own GUI on to of that?

 

(note I stopped doing software development a long time ago, my nieve questions above probably highlight way ;))

 

Interacting directly with a database which will change structure over time is a Bad Idea TM. It leads to a situation where the client could end up accessing incorrect data due to the structure having changed. Doing it via a intermediary API system means that the API can stay the same, but the underlying SQL commands may change within the API layer.

 

This is why, personally, I do all data access with applications via web services of one form of another in my own software now. It means I can change the DB, and the underlying database access code to my hearts content without affecting the applications using it.

  • Thanks 3
Posted

@matt40k and tmcd35

 

I think your points have been addressed quite well in the above posts (thanks, localzuc).

 

At the end of the day, like Scholarpack, we're just trying to make a difference. The market needs opening out and there needs to be some innovation and competition. Somebody needs to start putting the requirements of schools before those of shareholders. If people don't like what we come up with then I'm sure they won't use it - which is fair enough.

  • Thanks 1
Posted

The idea of whether some sort of layer between the DB and the GUI - an Object Relational Mapper (ORM) is best for these types of applications is a debate that has gone on for years.

 

Again, pleading ignorance, but is SQL (the language) not a perfectly usable database API? Will another API setting above that really help? If the DB is well structured and documented what more do you need to produce your own GUI on to of that?

 

I think it's perfectly usable in this situation and any sort of extra layer on top of that is

 

a) complicating matters more than they need to be

b) gonna slow things down in an application which already lugs large amounts of data about

 

I can't help thinking abstracting yourself from the db level is only going to end up in pain somewhere down the line...

 

Quite a detailed article here.

  • Thanks 1
Posted
The idea of whether some sort of layer between the DB and the GUI - an Object Relational Mapper (ORM) is best for these types of applications is a debate that has gone on for years.

 

 

 

I think it's perfectly usable in this situation and any sort of extra layer on top of that is

 

a) complicating matters more than they need to be

b) gonna slow things down in an application which already lugs large amounts of data about

 

I can't help thinking abstracting yourself from the db level is only going to end up in pain somewhere down the line...

 

Quite a detailed article here.

 

What happens when you decide that you no longer like MySQL for example, and want to switch to postgreSQL? Or when you decide to use No-SQL instead? Or whatever new technology comes out?

 

Every single client application will have to rewrite their database interaction code. With ORM, you have a buffer - and as a provider you're able to change the database as much as you wish without affecting the clients.

 

Imagine if twitter required all its clients to change the way they work fundamentally every time they made any changes? Or facebook? It just wouldn't work. ORM isn't a choice, it is a necessity plain and simple if you want to allow more than 1 client application to connect.

  • Thanks 3
Posted
What happens when you decide that you no longer like MySQL for example, and want to switch to postgreSQL? Or when you decide to use No-SQL instead? Or whatever new technology comes out?

 

RDMS have been around for 40 years. They aren't about to change! Why would a developer be switching databases willy nilly...MYSQL one week, Postgres the next?? You'd stick to what works best. They are all continually been refined but no 'new' technology is going to replace relational databases, unless I'm mistaken? Any programmer working with a relational database should have a good understanding of the relational model and the core SQL. If writing SQL is for masochists, then I'm a masochist :)

 

Every single client application will have to rewrite their database interaction code. With ORM, you have a buffer - and as a provider you're able to change the database as much as you wish without affecting the clients.

 

Imagine if twitter required all its clients to change the way they work fundamentally every time they made any changes? Or facebook? It just wouldn't work. ORM isn't a choice, it is a necessity plain and simple if you want to allow more than 1 client application to connect.

 

Twitter and Facebook are a different ball game - they have endless 3rd party applications interacting with them .. a school MIS on the other hand..not so much (if the MIS does all of the functionality). I see where you're coming from though.

Posted
RDMS have been around for 40 years. They aren't about to change! Why would a developer be switching databases willy nilly...MYSQL one week, Postgres the next?? You'd stick to what works best.

 

The software I write is database-agnostic, so the customer chooses which back-end they want to use. Choice is good :)

  • Thanks 1
Posted
... (if the MIS does all of the functionality)...

 

And that's part of the current problem; MIS suppliers trying to offer complete generic solutions to all tasks and making it difficult (or just plain expensive) for smaller companies to provide more bespoke (or just better) alternatives. Schools should be able to buy a basic MIS package and then choose from a whole range of tools from a range of suppliers, all of which just slotted into the MIS because they're all using the same API. So much easier to swap suppliers if you're not happy.

  • Thanks 1
Posted
RDMS have been around for 40 years. They aren't about to change! Why would a developer be switching databases willy nilly...MYSQL one week, Postgres the next?? You'd stick to what works best. They are all continually been refined but no 'new' technology is going to replace relational databases, unless I'm mistaken? Any programmer working with a relational database should have a good understanding of the relational model and the core SQL. If writing SQL is for masochists, then I'm a masochist :)

 

Why do you get to decide which database backend to use? And yes, the database market IS changing. A lot. New ideas such as NoSQL are appearing. Just look at the way Google Apps work - you don't have a RDMS at all, instead having a object datastore. Limiting your technology's progression simply because you're used to a certain technology is BAD.

 

Twitter and Facebook are a different ball game - they have endless 3rd party applications interacting with them .. a school MIS on the other hand..not so much (if the MIS does all of the functionality). I see where you're coming from though.

 

So, library systems, cashless catering systems, information display screens, achievement tracking systems, parent reporting systems etc... aren't endless but there are an increasing number of them. Just because the number is smaller than Twitter has, doesn't mean you shoudn't design things so they work well without changes.

  • Thanks 1
Posted

I'd weigh in with localzuk here. Abstraction of the database layer is a good thing on any non-trivial system for easing the maintenance burden, offering flexibility, and reducing the burden of integration with other systems. Not only that but you can also do stronger verification of data integrity, and implement AAA so you have better control over the data.

 

To give an example where an API can increase flexibility, some functions are already well handled by existing tools. Let us consider scanned letters, or policy documents that staff need to agree to periodically (VDU survey, AUP). Using an API the MIS front end could seamlessly request a document (from Alfresco, Sharepoint, or a regular file system) along with the record of who has agreed to the policy (from the MIS database or even a custom table).

 

Personally, being able to pull names, pictures and so forth into OpenLDAP would be nice, so network/vle users could be created as a side effect of normal admin processes and disabled/removed automatically when they leave the school.

 

A common point raised about now in these discussions is "government sponsored competition with the private sector = BAD". Any company who says this cannot think much of their product, if they think a young upstart could compete. However this is not competition, as there is nothing to stop anyone (including the incumbent MIS providers) from downloading the OSS source code, improving it and selling it for as much as they wanted. They are, of course, required to return the favour on the free development they benefit from by releasing the changes. A better position for an incumbent who could not compete using their existing product would be to provide support, and paid for customisations for the OSS product (either look and feel, or new modules that would then be pushed upstream).

Posted
And that's part of the current problem; MIS suppliers trying to offer complete generic solutions to all tasks and making it difficult (or just plain expensive) for smaller companies to provide more bespoke (or just better) alternatives. Schools should be able to buy a basic MIS package and then choose from a whole range of tools from a range of suppliers, all of which just slotted into the MIS because they're all using the same API. So much easier to swap suppliers if you're not happy.

 

Am I missing something? Didn't you just describe SIMS? Over 200 companies who make addins, paying between a ton and nothing.

Posted
Didn't you just describe SIMS? Over 200 companies who make addins, paying between a ton and nothing.

 

Is there a central list/repository of these 200 companies and the add-ins they offer? I'd be interested to know how SIMS can be expanded, what extra functionality may be available...

Posted (edited)

Pretty much anything you can think of has been done. Authentication, photocopiers that scan straight into SIMS, door entry that takes the registers when they enter the room, cashless catering, SIF agents, bulk import\export, VLE import\export stuff, timetable import\export... the list goes on, but basically can fill up most of the SIMS database via 3rd parties. You can't do much with System Manager (which makes sense) and FMS, pretty much the only limits. Not sure about Exams\Options however.

 

I doubt Capita would give a full list, unless someone paid them, but a ones that have:

Home

(Also note some don't want to be listed)

Edited by matt40k
Spell check
  • Thanks 1
Posted (edited)
Why do you get to decide which database backend to use? And yes, the database market IS changing. A lot. New ideas such as NoSQL are appearing. Just look at the way Google Apps work - you don't have a RDMS at all, instead having a object datastore. Limiting your technology's progression simply because you're used to a certain technology is BAD.

 

I get to decide which db backend to use because that is a design decision to be undertaken by the developers! The market may be changing in some areas but noSQL is a long way off from being able to replace Postgres in the MIS environment. Google Apps isn't an MIS and for batch processing or transaction noSQL gets you nowhere. Data and data integrity is more important than any layer on top of it and RDMS does that best still. You know Google Adwords uses MySQL (switched to Oracle then back). Some might argue that hbase/cassandra = reduced complexity at the expense of performance.

 

Anyway, I don't know why I'm the only one holding up the torch for RDMS here - all of the main MIS providers use them. Maybe Phil and I could agree on this one :)?

So, library systems, cashless catering systems, information display screens, achievement tracking systems, parent reporting systems etc... aren't endless but there are an increasing number of them. Just because the number is smaller than Twitter has, doesn't mean you shoudn't design things so they work well without changes.

 

A good MIS would do half of those, but if you really wanted to allow 3rd party developers to bolt on, why not use web services for the required data and a) save yourself a shedload of hassle with an unnecessary ORM and b) control the data 3rd parties have access to more easily

Edited by scholarpack
Posted
A good MIS would do half of those, but if you really wanted to allow 3rd party developers to bolt on, why not use web services for the required data and a) save yourself a shedload of hassle with an unnecessary ORM and b) control the data 3rd parties have access to more easily

 

ORM isn't limited to using a specific DLL you know - a web service is a web based version of the ORM model. ie. you have added an intermediary between clients and the server to allow systems that aren't in that specific language to use it without having to do any weird conversion or changes youreslef.

 

And no, a good MIS won't do half of those. A good MIS will do what it is designed to do, and allow all the other systems to connect in and get the bits of data they want. I don't want our MIS doing library management. I don't want it dealing with our kitchen. It is there to manage pupil data.

Posted
ORM isn't limited to using a specific DLL you know - a web service is a web based version of the ORM model. ie. you have added an intermediary between clients and the server to allow systems that aren't in that specific language to use it without having to do any weird conversion or changes youreslef.

 

And no, a good MIS won't do half of those. A good MIS will do what it is designed to do, and allow all the other systems to connect in and get the bits of data they want. I don't want our MIS doing library management. I don't want it dealing with our kitchen. It is there to manage pupil data.

 

But a limited number of web services is much easier to manage than a fully fledged ORM layer, for which their might not be any need.

 

An MIS should only handle pupil data? What about staff, accounting, etc and all of the other supporting areas.

 

library systems, cashless catering systems, information display screens, achievement tracking systems, parent reporting systems

 

The last two I have no doubt should be an integral part of any school MIS. The others, well it could be done/has been done and I'm sure most would rather have it integrated instead of separate software with different interfaces and 10 different supporting companies.

Posted
I don't want our MIS doing library management. I don't want it dealing with our kitchen. It is there to manage pupil data.

 

If they can be doing the same thing surely that is a bonus though. End of the day there is a complex structure in place in terms of students, staff, classes, years, courses etc... taking advantage of that structure to include other informtion linked to those students etc will be much more efficient than a secondary system.

Posted
If they can be doing the same thing surely that is a bonus though. End of the day there is a complex structure in place in terms of students, staff, classes, years, courses etc... taking advantage of that structure to include other informtion linked to those students etc will be much more efficient than a secondary system.

 

Just to add my two pence, I think the biggest problem now is the lack of options. If somebody is going to make a new MIS system, I think there is a real need for it to have a good API that developers can use to create their own systems that tie in to that MIS.

 

By all means if this new MIS supplier wants to integrate all these systems, do it, but give us the option not to use the system that the MIS supplier has provided, give us the option to use third party systems.

  • Thanks 2
Posted
But a limited number of web services is much easier to manage than a fully fledged ORM layer, for which their might not be any need.

 

An MIS should only handle pupil data? What about staff, accounting, etc and all of the other supporting areas.

 

Yes, ok, staff maybe. But not accounting!

 

The idea of squashing everything a school does into one system is bizarre to me. Why not go further? Why not have the MIS also be the network directory server, what about using it as a file store server too? The same idea is used in teaching. We used to have teachers doing admin work, teaching, clubs etc... Now, it has been recognised that having one person do everything is akin to putting all your eggs in one basket.

 

Trying to do everything in one system is a silly idea to me, you end up doing 1000 things badly, rather than 10 things excellently. Let people specialising in the specific areas deal with them.

 

The last two I have no doubt should be an integral part of any school MIS. The others, well it could be done/has been done and I'm sure most would rather have it integrated instead of separate software with different interfaces and 10 different supporting companies.

 

See, there's the thing - by integrating those sort of things into the system you end up limiting the school to the functionality that the system can provide. We don't use achievement tracking in SIMS.net because it can't handle the way we deal with merits and the like in school. Sure, we put behaviour notices in there, but only because it mimics the old behaviour system we had. If it didn't, you can be sure we wouldn't be using it.

 

If they can be doing the same thing surely that is a bonus though. End of the day there is a complex structure in place in terms of students, staff, classes, years, courses etc... taking advantage of that structure to include other informtion linked to those students etc will be much more efficient than a secondary system.

 

Why is it a bonus? You end up with a single, monolithic system which is so unwieldy to diagnose any issues with it makes it impossible to use. This is why we split things across multiple servers in schools, so that if, say, the print server has issues, it can be dealt with without the rest of the systems being affected.

 

The idea of monolithic systems went out, in the business world, with mainframes and AS400s etc... Instead, smaller, interacting systems are in use now, as it is much simpler to change them, and keep them relevant to the business.

  • Thanks 1
Posted
Why is it a bonus? You end up with a single, monolithic system which is so unwieldy to diagnose any issues with it makes it impossible to use. This is why we split things across multiple servers in schools, so that if, say, the print server has issues, it can be dealt with without the rest of the systems being affected.

 

The idea of monolithic systems went out, in the business world, with mainframes and AS400s etc... Instead, smaller, interacting systems are in use now, as it is much simpler to change them, and keep them relevant to the business.

 

You are adding in inefficiencies, additional connections, additional storage methods, further points of failure. Ok if you have 1 point of failure for everything then that is just as bad, but with lots of seperate systems all connecting in their own way for their own uses, there are multiple points of failure.

Posted
You are adding in inefficiencies, additional connections, additional storage methods, further points of failure. Ok if you have 1 point of failure for everything then that is just as bad, but with lots of seperate systems all connecting in their own way for their own uses, there are multiple points of failure.

 

Multiple parallel points of failure are MUCH better than a single point of failure!

  • Thanks 1
Posted
I wouldn't suggest otherwise, but not sure parallel is the case, with all interacting in their own way with a single database, making the changes they want to make, which will have an effect of other systems also doing the same.
Posted

With a separate database, there is no requirement to have a single copy of it. Mirror it. No need to have the mirror in an identical RDBMS.

 

And if only some of the functionality goes down, at least you have the rest. Many things interfacing with an MIS API will only need occassional access (adding new users), so downtime of the database is no big deal.

 

To be honest, worrying about the technology now is a bit early. Before that is done a project needs to have done analysis and design work first, not to mention writing the first batch of test cases (so you know the system meets the requirements before you are coloured by what you have coded). Doing that might influence the technology in ways none of us has thought of yet.

  • Thanks 1
Posted
Am I missing something? Didn't you just describe SIMS? Over 200 companies who make addins, paying between a ton and nothing.

?? So let's say I want to be a SIMS technical partner, for example (got your calculator ready?)

Licence SIMS Software £5000

Installation on my computer £1000 (plus expenses)

SIMS SQL new software releases £150 per year

Partner support £3500 per year

Access core data + lesson / attendance data £150 per school per year and if I want all the bells and whistles that's £200

 

Not exactly free then, is it? I'm talking free, as in £0.00 per school per year

Small firms can be deterred from entering the market by these charges, thus stifling innovation. Those firms that do get into it simply recoup the cost by increasing the cost to the schools, making the add-ons more expensive than they need be.

  • Thanks 1
Posted
?? So let's say I want to be a SIMS technical partner, for example (got your calculator ready?)

Licence SIMS Software £5000

Installation on my computer £1000 (plus expenses)

SIMS SQL new software releases £150 per year

Partner support £3500 per year

Access core data + lesson / attendance data £150 per school per year and if I want all the bells and whistles that's £200

 

Not exactly free then, is it? I'm talking free, as in £0.00 per school per year

Small firms can be deterred from entering the market by these charges, thus stifling innovation. Those firms that do get into it simply recoup the cost by increasing the cost to the schools, making the add-ons more expensive than they need be.

 

Are those figures accurate?

 

That works out more expensive that my last school paid for SIMS as a user?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...