tailieunhanh - Lecture Notes Software design and architecture – Chapter 13

Lecture 13 – Implicit asynchronous communication software architecture. An architecture style (also known as an “architecture pattern”) abstracts the common properties of a family of similar designs. Define a family of systems in terms of a pattern of its structural organization. | Lecture Notes Lecture 13 – IMPLICIT ASYNCHRONOUS COMMUNICATION SOFTWARE ARCHITECTURE An architecture style (also known as an “architecture pattern”) abstracts the common properties of a family of similar designs. Define a family of systems in terms of a pattern of its structural organization. Components Of A Style The key components of an architecture style are: • Elements/components that perform functions required by a system • Connectors that enable communication, coordination, and cooperation among elements • Constraints that define how elements can be integrated to form the system • Attributes that describe the advantages and disadvantages of the chosen structure Categories of Architectural Styles • Hierarchal Software Architecture – Layered • Distributed Software Architecture – Client Server – SOA • Data Flow Software Architecture – Pipe n Filter – Batch Sequential • Event Based Software Architecture • Data Centered Software Architecture – Black board – Shared Repository • Interaction-Oriented Software Architectures – Model View Controller • Component-Based Software Architecture IMPLICIT ASYNCHRONOUS COMMUNICATION SOFTWARE ARCHITECTURE: An asynchronous implicit invocation communication can be specified in two different modes: non-buffered and buffered. We have seen some architectures that apply the publisher-subscriber or producer-consumer patterns where the subscribers/consumers are interested in some events or messages issued by a publisher/producer. Subscribers register themselves with the event source. The subscriber is actually an event listener that, after registration, is notified of such occurrences. Once an event is fired off by an event source, all corresponding subscribers are notified, which then take corresponding actions. It is up to the subscribers to decide on the actions to execute. The Observer pattern is another name used for this type of architecture. The message queue and message topic are typical buffered asynchronous architectures that subscribers/consumers also need to register their interests with; the event/message is fired off when available on the buffered message queue or topic. A message queue is a one-to-one or point-to-point architecture between message senders and message receivers; whereas a message topic is a oneto- many architecture between publishers and subscribers. Regardless of the type of asynchronous architecture, the main purpose of this type of communication architecture is to provide a decoupling between the event/message, the publishers/producers, and the subscribers/customers. These are very popular architectures in distributed applications. Specific examples of implicit invocation architectures include, but are not limited to, JavaBean components, ActiveX components, .NET components, the Enterprise JavaBean (EJB) callback methods by the EJB container, the Common Object Request Broker Architecture (CORBA) callback mechanism, passing function pointers as parameters of function in method invocations in C++, Java XML SAX parser, and MS .NET Remote mechanisms.