14.01.2015 Views

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Mobile <strong>Application</strong>s designed for mobile devices.<br />

• Rich Client <strong>Application</strong>s designed to run primarily on a client PC.<br />

• Rich Internet <strong>Application</strong>s designed to be deployed from the Internet, which support<br />

rich UI and media scenarios.<br />

• Service <strong>Application</strong>s designed to support communication between loosely coupled<br />

components.<br />

• Web <strong>Application</strong>s designed to run primarily on the server in fully connected scenarios.<br />

Deployment Strategy<br />

When you design your application architecture, you must take into account corporate policies<br />

and procedures; together with the infrastructure on which you plan to deploy your application.<br />

If the target environment is fixed or inflexible, your application design must accomodate<br />

restrictions that exist in that environment. Your application design must also take into account<br />

Quality-of-Service (QoS) attributes such as security and maintainability. Sometimes you must<br />

make design tradeoffs due to protocol restrictions and network topologies.<br />

Identify the requirements and constraints that exist between the application architecture and<br />

infrastructure architecture early in the design process. This helps you to choose an appropriate<br />

deployment topology, and helps you resolve conflicts between the application and<br />

infrastructure architecture early in the process.<br />

Architectural Style<br />

There are many factors that influence the architectural styles that you follow. These include the<br />

capacity of your organization for design and implementation; the capabilities and experience of<br />

developers; and the infrastructure constraints and deployment scenarios available.<br />

Appropriate Technologies<br />

When choosing technologies for your application, the key factors to consider are the type of<br />

application you are developing, and your preferred options for application deployment<br />

topology and architectural styles. The choice of technologies will also be governed by<br />

organization policies, infrastructure limitations, resource skills, and so on. You must compare<br />

the capabilities of the technologies you choose against your application requirements, taking<br />

into account all of these factors before making decisions<br />

Quality Attributes<br />

Quality attributes can be used to focus your thinking around the critical problems that your<br />

design should solve. Depending on your requirements, you may need to consider every quality<br />

attribute covered in this guide; or you may only need to consider a subset. Every application<br />

design must consider security and performance, for example, but not every design needs to<br />

consider interoperability or scalability. Understand your requirements and deployment<br />

scenarios first so that you know which quality attributes are important for your design. Keep in<br />

mind that quality attributes may conflict. For example, security often requires a tradeoff against<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!