When you start the daunting task of designing the architecture of your system, you will find that you have some difficult architectural questions to answer.
What are the main functional elements of your architecture?
How will these elements interact with one another and with the outside world?
What information will be managed, stored, and presented?
What physical hardware and software elements will be required to support ...