What is your advice when a customer wants high performance, high usability and high security database solution?
Anónimo
Beware! The question is a fully loaded. I’ll KISS it according to the knowledge that I have (0: High performance: is a broad term. High performance computing, high performance storage system, high performance chassis (read: hardware specs); depending upon what exactly a buyer wants, your suggestion could be around the lines of: clustering, load balancing, mirroring, replication, fail over, segmentation; implementing RAID levels (for instance level 5 – being highest), SAM hardware, in-memory databases, etc. If talking about high performance programming technology, go for using C++; this provides close to real time processing. High usability: This means, ease of use. Allow user to use their intuition about how software will work or react to a user action. Hire experienced user experience designers and have them research and come up with the best UI’s ever. What are you going to use most of the screen to display main content? How will you display menus and sidebars? Should they take up less space than the main content? How about when the screen goes to 800x600 from 1024 x 768? How your application will react to a range of internet browsers? Etc... Depends upon the scenario and specific security requirements; if its non-repudiation security can be provided using SSL/transport level security, Client Certificates, PKI, TDES. Use a combination of cryptographic techniques, for instance, symmetric, asymmetric, and hashing algorithms – wherever whichever is applicable. Provide a solution of infrastructure that includes demilitarized zone (DMZ), encrypted transportation of data, fire walls, secure gateways, etc. If from coding perspective, obfuscate your code; for instance .NET is almost an open source; so you will need to obfuscate your code in order to make it less prone to hack. Or use low level coding to keep the code to low level. Use a centralized security mechanism, for instance providing SSO for centralized authentication; encrypted data sources, etc.