There are different styles, patterns and principles used in
software development. It’s very important to make the right choice of the
architectural style for the application before starting the development.
Developing application with proper architectural style avoids lot of problems
occurring while developing or after the development is completed. If the architecture selection is proper then software development
can easily distributed to various developers and simultaneous work can be
carried out.
Application can easily incorporate the complex changes. Re engineering is also easy and application easily enhanced without affecting the existing development.
Application can easily incorporate the complex changes. Re engineering is also easy and application easily enhanced without affecting the existing development.
Below are some latest styles listed with its description. I
have taken the MSDN reference to get this information.
Client/Server: Segregates the system into two applications,
where the client makes requests to the server. In many cases, the server is a
database with application logic represented as stored procedures.
E.g. e-mail readers, FTP clients, and database query tools
Component-Based
Architecture: Decomposes application design into reusable functional or
logical components that expose well-defined communication interfaces.
Domain Driven Design:
An object-oriented architectural style focused on modeling a business domain
and defining business objects based on entities within the business domain. Key
feature of a component environment is the role of metadata. A component’s
technical contract includes both callback-like mechanisms that enable its life-cycle to be managed by a separate framework infrastructure technical
contract includes both callback-like mechanisms that enable its life cycle to be
managed by a separate framework infrastructure
Layered Architecture:
Partitions the concerns of the application into stacked groups (layers).
E.g. line-of-business (LOB) applications such as
accounting and customer-management systems; enterprise Web-based applications
and Web sites, and enterprise desktop or smart clients with centralized
application servers for business logic
Message Bus: An
architecture style that prescribes use of a software system that can receive
and send messages using one or more communication channels, so that
applications can interact without needing to know specific details about each
other.
E.g. Publish/Subscribe pattern
N-Tier / 3-Tier:
Segregates functionality into separate segments in much the same way as the
layered style, but with each segment being a tier located on a physically
separate computer.
E.g. Financial Web application, Rich client connected
application
Object-Oriented: An object-oriented framework provides a
context for reuse based on individual classes that extend and use an existing
API. Design paradigm based on division
of responsibilities for an application or system into individual reusable and
self-sufficient objects, each containing the data and the behavior relevant to
the object.
Service-Oriented Architectural Style
Service-oriented architecture (SOA) enables application
functionality to be provided as a set of services, and the creation of
applications that make use of software services. Services are loosely coupled
because they use standards-based interfaces that can be invoked, published, and
discovered.
E.g Reservation systems and online stores
No comments:
Post a Comment