Avner Arbel - Director of software development
Nowadays, at Visonic Technologies we’re working to develop the next generation of our Elpas network technologies.
When designing new network solutions, especially when it comes to real time location systems (RTLS), there are a number of key design guidelines and principles that should be considered.
I particularly like the list of principles enumerated and discussed in RFC 1958, which is well worth reading! The necessity of those principles is even greater in the active RFID/RTLS environment since we are dealing with multiple layers.
For example, in every Elpas RFID solution, we have active and passive mobile and stationary tags that transmit identification and tracking data; strategically located wall and ceiling mounted readers and receivers that receive the transmitted tag data; the LonTalk, Ethernet/IP and/or Wi-Fi networks that relay the received tag data to the local positioning EIRIS server and the calculation that determines location down to room level precision.
Summarized below are what I consider to be the top 10 architectural principles, which I have listed in order of their importance:
1. Make sure it works – Do not finalize the design or standard until multiple prototypes have successfully communicated with each other.
2. Keep it simple – When in doubt, use the simplest solution.
3. Make clear choices – If there are several ways of doing the same thing, choose one. Having two or more ways of doing the same thing is looking for trouble. Standards often have multiple options, modes or parameters because powerful parties insist that their way is best.
Designers should strongly resist this tendency. Just say no!
4. Exploit modularity – This principle leads directly to the idea of having protocol stacks, each of whose layers is independent of all other ones.
5. Expect heterogeneity – Diverse hardware, transmission facilities and applications will occur on any large network. To handle them, network design must be simple, general, and flexible.
6. Avoid static options and parameters – If parameters are unavoidable (e.g., max. packet size), it is best to have the sender and receiver negotiate a value rather than arbitrary define a fixed choice.
7. Look for a good design; it need not be perfect – Often good design cannot handle weird special cases. Rather than messing up the architecture, designers should put the burden of creating the work around, on the people with the strange requirements.
8. Be strict when sending and tolerant when receiving – Send packets that rigorously comply with the standards, but anticipate incoming packets that may not be fully conformant and be flexible enough to deal with them.
9. Think about scalability – If the system is to effectively handle millions of hosts and billions of users, no centralized databases of any kind can be tolerated since the load must be spread as evenly as possible over available resources.
10. Consider performance and cost – If a network has poor performance or outrageous costs, nobody will use it.
I also highly recommend that you take a look at Andrew S Tanenbaum’s classic book on computer networking entitled: Computer Networks (4th Edition). The book is arguably the best single resource for gaining a good technical understanding of modern networking – from the underlying physical layer hardware up through today’s most popular network applications.