Blackboard Software
Adriana Contreras
Alex Garcia
Karen Richart
Begoña Beorlegui
Heriberto Gonzalez
What is it?
• Blackboard is an
architectural model where a
problem is solved by a
group of specialists.
What problem does it solve?
• Allows the solution of
complex problems where
the solution is the sum of
the specialists’
How does it solve the problem?
Who are the actors?
• The actors are the
Knowledge sources that
contribute with a partial
solution of the problem.
• A control shell that
moderates the flow of the
problem solution.
How do they relate to each
• They relate to each other by
the problem that they
collaboratively need to
Team 2
What is an Interpreter?
• A “virtual machine” that parses and executes
input commands
• Actors:
o Hardware
o Program
What does it do?
• Improves portability of the software
• Supports flexibility with other architectural
• Highly dynamic behavior allowed
What is it made of?
Interpreters generally have four components:
interpretation engine
representation of the control state
representation of the current state
Plug-in Architecture
Team 3
Plug-in Architecture
What is Plug-in Architecture?
Framework that allows programs or applications to find add-in
functionalities from plug-ins when starting up and allow the plug-ins to
apply their functionalities with the current program or application.
What problem does Plug-in Architecture solve and how does it solve it?
Solves the problem of feature bloat by enabling the customizing of the
functionality of an application.
 By allowing outside features to be added to an application, the
developer is able to have a release that is smaller in size and does not
contain unnecessary and often unused features.
Overall, applications support plug-ins for several reasons, including:
 to enable third-party developers to create abilities which extend an
 to support easily adding new features
 to reduce the size of an application
 to separate source code from an application because of
incompatible software licenses.
Plug-in Architecture
Host Application: Loads the plug-in and provides an interface for the plugin.
Plug-In: Module that is dependent on a host application and adds
functionality to the host application.
How are these actors related?
The host application provides
service which the plug-in can
Plug-ins depend on services
provided by the host, while the
host operates independently
of the user.
End-users are able to
add and update plug-ins
dynamically, without needing to
make changes to the host application.
Plug-in Architecture
Some examples of applications which use plug-ins, and why, include:
Email clients use plug-ins to decrypt and encrypt email (Pretty Good Privacy)
Graphics software use plug-ins to support file formats and process images
(Adobe Photoshop)
Media players use plug-ins to support file formats and apply filters (Winamp,
Windows Media)
Software development environments use plug-ins to support programming
languages (Eclipse, jEdit, MonoDevelop)
Web browsers use plug-ins (often implementing the NPAPI specification) to play
video and presentation formats (Flash, QuickTime, Microsoft Silverlight, 3DMLW)
 Playing with Plugins. (2012, June 18). How do plugins work. [Online] Available:
 UCL Information Services Division. (1999-2013). How “plugins” work. Stowell, Dan.
[Online] Available:
 P. Qualls. (2002, June 13). Plug-in Architecture Framework for Beginners [Online]
 Plug-in (computing). (2013, January 23). In Wikipedia, The Free Encyclopedia. [Online]
Search-Oriented Architecture
Team 4
Search-Oriented Architecture
What is it?
Search engine technology replaces or supplements a
relational database management system
SQL queries are replaced by keyword or fielded searches for:
 Structured
 Semi-structured
 Unstructured data
Solve the problem
Is a three-tier architecture
Response time in large dynamic datasets
The data tier is not as organized
Search-Oriented Architecture
 Who are the actors?
 User
 Database
In Depth Look of Search-Oriented Design
Search-Oriented Architecture
 References
Space-Based Architectures
Team 5 – Software Eng. 2 – Spring 2013
What is Space-Based Architecture?
Organize related data and business logic
together into processing units (PU); a
compartmentalization of applications that
allows for the emulation of various software
Source: Browne, Julian.“Space-based Agility”. June 25, 2007
Why Space-Based Architecture?
What happens when the perfect software architecture is
ruined by a business or client’s new requirements?
Make the applications within software more modular.
Encapsulate an application’s data and business logic together;
aka a processing unit (PU).
Adding/removing an application is modular.
Provide a tuple space (aka space) for objects that can
be used concurrently by applications.
Sources: 1. Nair, Anup H. “Distributed Space based architecture”. May 27, 2012
2. Mordinyi, Richard et al, “Space-based Architectures as Abstraction Layer for Distributed
Business Applications”. 2010 IEEE
Space-Based Architecture
Tuple Space:
coordinators, aspects, entries
Processing Units
How do the actors relate to each
Processing Units can access objects.
Objects are tuples inside of containers.
Containers are internet addressable.
Source: Mordinyi, Richard et al, “Space-based Architectures as Abstraction Layer for
Distributed Business Applications”. 2010 IEEE
Shared Nothing Architecture
Shared nothing
– is a distributed
computing architecture. There is no
central unit and each part of the system
acts independently.
 Ex.
Several Processors share neither
common memory nor common disk
Shared Nothing Architecture
Solves bottle necking and
 Independent
nodes act as part of a
system, but do no rely on each others
 SN is infinitely scalable and only limited by
the number of node you can incorporate
Shared Nothing Architecture
 Nodes
are the actors and they act in their
own process space. They act
asynchronously and are race-free.
 They act independently but are
components of a larger system
Shared Nothing Architecture
Shared Nothing Architecture
The Case for Shared Nothing Architecture by Michael Stonebraker. [Originally published
in Database Engineering, Volume 9, Number 1 (1986).]
Shared Nothing v.s. Shared Disk Architectures: An Independent View by Ben Stopford,
Tuesday, November 24th, 2009
Software Engineering
Team 7
publish–subscribe is a messaging pattern where senders
of messages, called publishers, do not program the
messages to be sent directly to specific receivers, called
published messages are characterized into classes,
without knowledge of what, if any, subscribers there
may be.
Subscribers express interest in one or more classes, and
only receive messages that are of interest, without
knowledge of what, if any, publishers there are.
Loose coupling
Publishers are loosely coupled to subscribers, and need not even know of their
existence. With the topic being the focus, publishers and subscribers are
allowed to remain ignorant of system topology.
Pub/sub provides the opportunity for better
scalability than traditional client–server,
through parallel operation, message caching,
tree-based or network-based routing, etc.

Blackboard Software Architecture - Index