Types of application Architecture

October 10, 2015
35.6 Architectural Artifacts

This chapter will help you to understand the application types covered in this guide, the tradeoffs necessary, and the design impact for choosing an application type. After reading this chapter, you will be able to determine the appropriate application type for your scenario and requirements. The chapter provides brief details of each of the five basic application archetypes, and links to more detail information in other chapters.

The requirements, technology constraints, and type of user experience you plan to deliver will determine the application type you choose. For example, you must decide whether the clients you intend to serve will have a permanent network connection available, whether you must deliver rich media content to anonymous users for viewing in a Web browser, or whether you will predominantly service a small number of users on a corporate intranet.

Use the following application archetypes summary to review each application type, its description, and common scenarios. Use the table in this section to help you make an informed choice of application type, based on the benefits and considerations for each type.

The following are the common basic types of applications that you may decide to build:

  • Mobile applications. Applications of this type can be developed as thin client or rich client applications. Rich client mobile applications can support disconnected or occasionally connected scenarios. Web or thin client applications support connected scenarios only. Device resources may prove to be a constraint when designing mobile applications.
  • Rich client applications. Applications of this type are usually developed as stand-alone applications with a graphical user interface that displays data using a range of controls. Rich client applications can be designed for disconnected and occasionally connected scenarios if they need to access remote data or functionality.
  • Rich Internet applications. Applications of this type can be developed to support multiple platforms and multiple browsers, displaying rich media or graphical content. Rich Internet applications run in a browser sandbox that restricts access to some features of the client.
  • Service applications. Services expose shared business functionality and allow clients to access them from a local or a remote system. Service operations are called using messages, based on XML schemas, passed over a transport channel. The goal of this type of application is to achieve loose coupling between the client and the server.
  • Web applications. Applications of this type typically support connected scenarios and can support different browsers running on a range of operating systems and platforms.

There are many other more specific types of application that you can design and build. In general, these types are specializations or combinations of the basic types described in this list.

The following table indicates the benefits and considerations for the common application archetypes.

Application type

Benefits

Considerations

Mobile applications

Support for handheld devices.

Availability and ease of use for out of office users.

Support for offline and occasionally-connected scenarios.

Input and navigation limitations.

Limited screen display area.

Rich client applications

Ability to leverage client resources.

Better responsiveness, rich UI functionality, and improved user experience.

Highly dynamic and responsive interaction.

Support for offline and occasionally connected scenarios.

Deployment complexity; however, a range of installation options such as ClickOnce, Windows Installer, and XCOPY are available.

Challenging to version over time.

Platform specific.

Rich Internet applications (RIA)

The same rich user interface capability as rich clients.

Support for rich and streaming media and graphical display.

Simple deployment with the same distribution capabilities (reach) as Web clients.

Simple upgrade and version updating.

Cross-platform and cross-browser support.

Larger application footprint on the client compared to a Web application.

Restrictions on leveraging client resources compared to a rich client application.

Requires deployment of a suitable runtime framework on the client.

Service applications

Loosely coupled interactions between client and server.

Can be consumed by different and unrelated applications.

Support for interoperability.

No UI support.

Dependent on network connectivity.

Web applications

Broad reach and a standards-based UI across multiple platforms.

Ease of deployment and change management.

Dependent on continual network connectivity.

Difficult to provide a rich user interface.

Each application type can be implemented using one or more technologies. Scenarios and technology constraints, as well as the capabilities and experience of your development team, will drive your choice of technology.

The following sections describe each of the application types in more detail:

This guide also contains details of some of the more specialized application types. For more information, see the following:

A mobile application will normally be structured as a multilayered application consisting of user experience (presentation), business, and data layers, as shown in Figure 1.

Source: msdn.microsoft.com
RELATED VIDEO
Types of Competitive Advantage: Cost, Product, Niche
Types of Competitive Advantage: Cost, Product, Niche ...
PHP App Architecture 4: Views for Content Types
PHP App Architecture 4: Views for Content Types
Types of Communication: Interpersonal, Non-Verbal, Written
Types of Communication: Interpersonal, Non-Verbal, Written ...
RELATED FACTS
Share this Post