* more discussion of Component and Connector sw arch views... * components - computational elements or data stores * connectors - means of interaction between the components * a C&C view defines the components, and which components are connected through which connector a C&C view describes a runtime structure of the system -- which components exist at run time, and how they interact during execution * components - * each has a name, representing its role, and providing its identity * may have a type (with different types rep'd by different shapes) * connectors - * interaction between components happens through connectors * may be provided by the runtime environment, or by complex mechanisms for interaction (http, tcp/ip, ports, etc.) may require their own sw to support * choice of connector may affect how you choose to implement a component -- SO, it is important to identify connectors explicitly * connectors are often binary, but need not necessarily be -- ...e.g., a broadcast bus, multiplexer * connectors also have a name and a type * often connectors are represented as a protocol -- conventions components need to follow when using a connector * best to use different notations for different types of connectors (not all solid straight lines) * some C&C views occur frequently enough that they are considered GENERAL structures useful for whole classes of problems -- these, in Jalote, are called architectural styles (and can be combined in a given system's C&C diagram) ...think of them as developing your architectural vocabulary/toolbox! * here are a FEW of these: * pipe and filter * one component type: filter * one connector type: pipe * shared-data style * data repository, one or more data accessors * in "classic/strict" definition, data accessors communicate with data accessors ONLY through the shared repository * black board style - if data is posted in a repository, all accessors are informed (shared datasource is an ACTIVE agent) RSS? maybe? * repository style - data repository is passive, new data is posted, but accessors have to request data * client-server style * two component types: clients and servers! * very classic/strict view: clients can communicate only with servers, not other clients; * communication is initiated by a client which sends a request to a server, and the server responds with a response * one connector type: request/reply, which is asymmetric ...more classic C&C architectural styles on Thursday;