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.

your application, and can provide additional services such as basic mapping between the<br />

format of the data exposed by the service and the format your application requires.<br />

Approach for <strong>Application</strong> <strong>Architecture</strong><br />

The approach to architectural design can be divided into the following steps:<br />

1. Choose your application type. The application type you are designing will have a major<br />

impact on all of the other decisions you make. Deployment considerations for a Web<br />

application are different to those for a mobile application. Authentication techniques are<br />

different for a service and a rich client. Start by understanding your application type, and<br />

how that choice impacts your overall architecture.<br />

2. Choose your deployment topology. How you will deploy your application will shape your<br />

overall design. Will you be deploying a Web application on multiple tiers Will you be<br />

deploying a RIA implementation over the Internet Understand your logical and physical<br />

deployment in order to better understand your constraints and architectural requirements.<br />

3. Choose your architectural styles. The type of application you are designing, together with<br />

architectural goals and constraints, determine which architectural styles are a best fit. Will<br />

your design be based on SOA principles Will you use an Enterprise Service Bus Are you<br />

building an S+S or Peer-to-Peer application The architectural styles described in this guide<br />

provide a set of principles that will make architectural decisions more cohesive and<br />

directed.<br />

4. Choose appropriate technologies. Choose technologies based on capabilities and patterns<br />

suited to your scenario.<br />

5. Determine how to address quality attributes. Consider how your design will address the<br />

common problems associated with each quality attribute. How will you design for<br />

availability, security, maintainability and reusability Use the quality attributes guide to<br />

create a robust design that will stand the test of time.<br />

6. Determine how to address cross-cutting concerns. Walk the architecture frame and<br />

understand how each cross-cutting concern impacts your design. Consider architectural<br />

requirements for tasks such as caching, communication, data access, layering, and<br />

validation.<br />

This approach will allow you to design a candidate architecture that can be reviewed, tested,<br />

and compared to your requirements and constraints. Do not get lost in the details; focus on the<br />

big steps and build a framework that you can use to develop the rest of your architecture and<br />

design.<br />

<strong>Application</strong> Types<br />

Your choice of application type will be related both to the technology constraints and the type<br />

of user experience you plan to deliver. Use scenarios to help you choose an application type.<br />

For example, if you want to support rich media and graphics delivered over the Internet, then a<br />

Rich Internet <strong>Application</strong> (RIA) is probably the best choice. However, if you want to support<br />

28

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

Saved successfully!

Ooh no, something went wrong!