Design Goals

This server is designed to be the foundation of wide range from local LAN server to large scale DHCP servers for ISP or telcos. It is capable of serving over millions of customers using low cost servers.

Design goals

  • Availability: state-less front-end servers. A majority of maintenance operations should not require server restart, especially topology (subnets) modification and updates. High availability should be easy to achieve with standard and simple load balancers. In case of failure of one component (frontend or backend) other components should enter a fallback mode where they are serving “at best” clients: e.g. renewing politely leases.
  • Adaptability: being able to adapt server needs to many contexts: pre-provisioned, dynamic, calculated, using database (free or not) or LDAP storage, allowing connection to IT legacy systmes.
  • Security: frontend servers are exposed like any other internet servers. This server should not add any security breach in whatever form. Thanks to Java, buffer overflow are very unlikely. The server shoudl also defend itself against brute-force arracks and DOS/DDOS.
  • Operations: being designed to be integrated to a large scale network infrastructure, it should be easy to manage and monitor using different tools on the market. SNMP management interface would be good. Server implementation should be designed with easy installation in mind.
  • Scalability: designed for millions of customers, the whole server infrastructure must be highly performant, supporting multi-threading, and scalable, capable of serving >1000 requests/s with standard x86 servers. In frontend/backend architectures, components should be as loosely coupled as possible.

Design principles

  • Simplicity: mother of all virtues, it is the one design principle guiding all our developments. However we recognize it is hard to measure.
  • 100% pure Java: yes! Java is capable of implementing a low-level network server with excellent performance, even compared with C-based products.
  • Java5:
 
design_goals.txt · Last modified: 2007/04/06 16:16 (external edit)
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki GeoURL