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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Peer-To-Peer<br />

Saas/S+S<br />

SOA<br />

Takes advantage of ad-hoc networking between multiple client computers to<br />

expand processing, storage or communication capacity.<br />

Software as a service is an application that runs in the cloud, relies on other<br />

services in the cloud, and may provide a service that other applications can<br />

consume. Software plus Services is an application that runs on the client but<br />

comes to life when connected to the cloud, offering capabilities that are not<br />

available when it is disconnected.<br />

Service-oriented architecture is a message based system composed of one or<br />

more applications that consume or expose Web services.<br />

Quality Attributes<br />

Use the quality attributes to focus your thinking around critical problems that your design<br />

should solve. Addressing quality attributes in your design rather than during development will<br />

improve the likelihood that your application will be successful in the long term. Use the table<br />

below to review and understand each quality attribute.<br />

Category<br />

Availability<br />

Conceptual Integrity<br />

Flexibility<br />

Interoperability<br />

Maintainability<br />

Manageability<br />

Performance<br />

Reliability<br />

Reusability<br />

Description<br />

The application should be available and operating at all times specified<br />

in an SLA, and when users will expect to be able to access it. Availability<br />

includes both software and infrastructure concerns.<br />

The application should avoid concrete dependencies on other systems<br />

and applications where possible, and provide features that allow it and<br />

any data it holds to be upgraded, migrated, and refactored.<br />

The application should be configurable to allow use in varying<br />

environments and situations, and to cope with changes to business<br />

policies and rules.<br />

The application should interoperate with other associated applications,<br />

including sending and receiving data and using services. It should also<br />

continue to interoperate when other applications are refactored or<br />

upgraded.<br />

The application should be designed and constructed in such a way as to<br />

allow changes to components, services, features, and interfaces as may<br />

be required when adding or changing the functionality, fixing bugs, and<br />

meeting new business requirements.<br />

The application should be easy to manage, by exposing sufficient and<br />

useful instrumentation for use in monitoring systems, and for<br />

debugging and performance tuning.<br />

The application should perform to requirements and expectations, making<br />

efficient use of resources and infrastructure.<br />

The application should continue to work correctly, and work without<br />

interruption where possible, when encountering issues such as invalid input<br />

data, survivable infrastructure faults, varying network bandwidth and<br />

availability, and other external factors.<br />

The components and services in the application should be designed in such a<br />

30

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

Saved successfully!

Ooh no, something went wrong!