Architecture decision questions
I need 开发者_如何学Cto choose right architecture model for my solution(client-server, web application, web services). Can you please tell me what questions I must answer to make good decision? thanks
No. Sorry to be blunt, but if you don't know the questions to ask, then you won't know what to do with the answers either. Suggest you engage an experienced architect.
Less flippantly, you need to consider a whole raft of factors - number and location of users, the types of operations they'll be performing, their expectations on performance; size, frequency of access to and frequency of updates to underlying data; technology constraints imposed by the environment in the target organisation; security requirements, both client and regulatory etc. etc. It's a great big area.
Here are some of the questions a software architect has to answer when choosing an architecture. David covered some other important areas, like security and regulations.
What are the sources of my data (information)?
What data (information) do I need to present, display, pass to other applications?
Is my application CPU-intensive (unlikely) or IO-intensive (probably).
How will I deploy changes to my application(s)?
Who (how many) people have the skills and knowledge to develop and support my application?
Which (how many, how stable) companies develop and support the technology that supports my application?
Will this application bring my company more money than it costs to develop and support my application?
Can I explain my application to investors in 100 words or less (the elevator pitch)?
First of all I'd advise you take some time to do some reading. There are some excellent articles on wikipedia that approach architectural subjects in a non-proprietory way. E.G. :
http://en.wikipedia.org/wiki/Service-oriented_architecture
http://en.wikipedia.org/wiki/Web_service
http://en.wikipedia.org/wiki/Client_server
(plus loads more)
Most importantly (IMO) think about tiers and layers. Be very careful about whether you need to start by going down the N-Tier/SOA route. It can add a lot of initial work, that you may be able to avoid if you start with a client-server approach. As long as you think about the layers you build in to your design, then moving to a N-Tier approach later on need not be painful.
精彩评论