System Architecture Concepts
Software System Architecture
- An significant Enterprise Software System
Architecture example
taken from DB2 Magazine, appearing in the following article
(optional material)
- Example of the overall
architecture for Catalyst.
- Another example
software architecture modeled in UML
- Architectural views emphasize structure (or configuration)
rather information, data, or work flow which may appear in System
Specifications or Requirements (cf. Use Cases).
Software System Components
- Executable software systems, programs,
functions, or computational methods (in object-oriented programs) with
an interface (a composition of I/O resources).
Interfaces
- Composition of I/O resources that
Require (consume), Use (reuse) or Provide (produce) application data
object types, instance values, or component control signals (e.g., to
automatically invoke other "helper" applications).
I/O Resources
- Application resources -- data object types,
instance values, or component control signals (start, stop,
suspend, resume, error, etc.) -- Input to, or Output from, a component
- (Optional) Functions or logical predicates that
specify the range of acceptable values for each resource, or
special values (e.g., "anomalies") that signify component processing
exceptions.
Connectors
- Connectors are the key ingredient for "Enterprise
Application Integration" that enable information, data, or work flow.
- Data communication mechanisms that enable the
exchange or interchange of messages (data or control signals) between
communicating components
- Point-to-Point Application Program
(Component) Interfaces (APIs) that link a Component's Outputs to
other Components' Inputs
- Messaging system for communicating (or
transporting) messages between a sending/requesting component and a
listening/receiving component.
- Text-based messages are a pervasive
"network-centric" scheme for communicating messages via the Internet.
- Textual pattern manipulation languages like
Perl, Tcl, Javascript/ECMAScript, and Python, together with textual
"pipe-and-filter" connectors, are used most frequently in Web
server-based enterprise applications.
- Email and Network News Servers
can be used to asynchronously transport textual messages between
system components (slowly) or between people via connection-based
servers.
- HyperText Transfer Protocol (HTTP) or Simple Object
Access Protocol (SOAP) can be used to asynchronously "request and
retrieve" views of self-describing MIME object types (HTML Web pages,
GIF/JPEG images, Quicktime MOVies, etc.) between system components
communicating over the Internet (Web browsers and Web Servers) for
viewing by people.
- User Datagram Protocol (UDP) is a
low-level, best-effort data communication protocol that supports
"instant messaging" between synchronously communicating
components that act as peers (e.g., peer-to-peer applications) communicating over the Internet.
- UDP is a fast messaging mechanism for
transferring small objects between a small number of peers.
- UDP is not a reliable transport mechanism,
especially for large objects or communications involving large numbers
of simultaneously chatting peers.
- Information bus: a "middleware"
messaging system for broadcasting from one sending component to many
other listening components, such as found in CORBA or products from TIBCO
(The Information Bus COmpany).
- Multicast trees are a scalable scheme
for broadcasting from one source/server to very many clients (servers),
who then rebroadcast to their own clients (servers) via intermediate
gateway mirrors or reflector servers.
- Synchronous MCTs are used for "live broadcast
events" (e.g., Victoria's Secret fashion shows) across the Internet (not the Web), using
dedicated servers connected via Real-Time Streaming Protocols to
purpose-built client programs (e.g., RealOne)
- Asynchronous MCTs are used to distribute large
files across the Web using "mirror sites" to very large numbers of
(download only) clients.
Configuration and Versions
- Configuration: An arrangement of
components ("floorplan") whose interfaces and I/O resources are
interconnected to other components using connectors.
- Version: An instance of a configuration,
component or connector, with a unique interface
In search of a simple Enterprise System Architectural Description
Language (ESADL)
- We want to develop and use an XML data
description schema to describe enterprise system architectures in our
team projects.
- XML data type definitions (or preferably XML
data model schemas) can be sent/received over the Web
- This enables portable, reusable or mobile
specification of System Architectures
- xADL is an XML-based language for
describing software system architectures, under development at UCI
(Optional: reference
materials).
- Want to learn more about xADL?
- Business
Process Execution Language for Web Services (aka, "BPEL4WS") is the bleading edge version of such a
language (not a
product) from the folks at IBM, BEA Systems, Microsoft, Siebel
Systems, and SAP AG.