Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
6 May 2014

Packages

By Andrew Clifford

Nodes, members, node types and member types make Metrici very versatile and let it hold any data. Metrici also has a hierarchical structure to make it even more flexible.

Nodes are arranged in a hierarchy similar to the hierarchy of directories and files on your PC. Nodes are arranged in packages in the same way that files are arranged in directories. Nodes have dot-delimited references in the same way that files have slash-delimited file names.

Packages are themselves just nodes. Most packages act like directories and list the nodes within them. However, unlike a file system where directories are different from regular files, packages can be any sort of node, and any node can act as a package.

Packages allow nodes to be grouped meaningfully. It allows data for different purposes to be put in different places, much like you would arrange directories and files on a PC.

Packages make it easy to separate data according to ownership and permissions. All the nodes in your account are in the same high-level package. Within an account, you can use packages to grant different people different access to different groups of nodes.

Using a hierarchical reference helps avoid name clashes, the "dll hell" that used to be so much of a problem on PCs. For example, you might have a node type for contact, as we did in the example web app. But because it has a full reference (such as somecompany.ContactsApp.Contact), there's no danger that you will pick up another contact node type by mistake.

By changing the dots in the reference to slashes, every node can be accessed at a unique web address. For example, the node with reference metrici.documentation.GettingStarted is available at web address http://www.metrici.com/metrici/documentation/GettingStarted. Metrici is a not a "web enabled" solution, it is fundamentally designed to be delivered on the web.

As well as imposing order on the data, using packages lets Metrici act as a table-based database, as in the first web app example. But unlike a relational database which holds everybody's data in one big table, packages allow you to split data down by ownership if that is what you need.

Splitting data into packages make processing simpler. It reduces the number triple store links that must be set up by hand, though links can be set up automatically using indexes where required. It provides a basis for processing groups of related nodes, such as reporting, export and import.

The hierarchical structure of Metrici is more than just a way of giving nodes unique references. It allows Metrici to extend the versatile triple store to deliver structures that act in much the same way as database tables and as file systems, and, as we covered last week, the structure of nodes and members is equivalent to an object-oriented system. Metrici does not map nodes to objects, tables and web pages; the fundamental design of Metrici means that nodes can be structured and accessed in any of these ways. This allows Metrici solutions to combine a variety of data storage and structuring paradigms – object, triple store, data table and file – rather than being constrained to choose one or another, while maintaining a simple, consistent structure throughout.

Next: Building websites in Metrici

Subscription

Subscribe to RSS feed

Latest newsletter:
Magical metadata

We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Find out more