Page 86 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 86

Principles of Software Engineering



                   Notes


                                            Prepare an architectural document for software.

                                 4.4 Architecture Styles

                                 An  architectural  style,  sometimes  called  an  architectural  pattern,  is  a  set  of  values  a  coarse
                                 grained pattern that provides an abstract structure for a family of systems. An architectural
                                 style improves partitioning and promotes design use again by providing solutions to frequently
                                 recurring problems. You can believe of architecture styles and patterns as sets of principles that
                                 shape an application. Garlan and Shaw define an architectural style as:
                                 Family of systems in terms of a pattern of structural organization. More specifically, an architectural
                                 style determines the vocabulary of components and connectors that can be used in instances of
                                 that style, together with a set of constraints on how they can be combined. These can include
                                 topological constraints on architectural descriptions (e.g., no cycles). Other constraints say, having
                                 to do with execution semantics might also be part of the style definition.

                                 An understanding of architectural styles provides several benefits. The most important benefit is that
                                 they provide a common language. They also provide opportunities for conversations that are
                                 technology agnostic. This facilitates a higher level of conversation that is inclusive of patterns and
                                 principles, without getting into specifics. For example, by using architecture styles, you can talk
                                 about client/server versus n-tier. Architectural styles can be organized by their key focus area.
                                 The following Table 4.3 lists the major areas of focus and the corresponding architectural styles.

                                                Table 4.3: Major Areas of Focus and the Corresponding
                                                               Architectural Styles

                                          Category         Architecture styles
                                          Communication    Service-Oriented Architecture (SOA), Message Bus
                                          Deployment       Client/Server, N-Tier, 3-Tier
                                          Domain           Domain Driven Design
                                                           Component-Based,  Object-Oriented,  Layered
                                          Structure
                                                           Architecture


                                 4.4.1 Client/Server Architectural Style
                                 The client-server architectural (CSA) style is most common in enterprise systems, and is also
                                 applied for integrating edge and enterprise systems. A “service” a discretely scoped business or
                                 technical functionality, and is offered by a “service provider” or server to “service requestors” or
                                 clients. Operationally, a service is defined by messages exchanged between clients and servers.
                                 This architectural style can be viewed as a special case of the generic data oriented integration
                                 architecture, as shown in Figure 4.5.

                                 The request and responses are correlated with a client specific “correlation_id” field in the data
                                 model. The QoS and are chosen to achieve the desired flow characteristics. For request and
                                 reply topics, QoS are chosen to deliver all the data samples in the order they happened. Content
                                 filtering is used on the response topic to receive only the responses intended for the requestor.

                                 It is interesting and ironic to note that despite the hype, the vast majority of the implementations
                                 of SOA rely on tightly-coupled technologies and design principles, resulting in tightly-coupled
                                 SOA software. This runs counter to the promise of SOA, and can prove detrimental to its success



        80                                LOVELY PROFESSIONAL UNIVERSITY
   81   82   83   84   85   86   87   88   89   90   91