Purely Interconnected Component
System (PICS) is a CLOS based prototyping
language allowing to develop software prototypes. The
main objective of PICS is to create a
prototyping facility around architectural
abstractions provided by several ADLs.
PICS allows one to describe executable software
architecture specification that can be validated against a requirement
specification.
People
Software
Software Requirement
: PICS requires Gnu LISP compiler and Closette MOP module.
These two software packages are mirrored here:
gcl.rpm and
closette and
newcl.lisp.
PICS
Package |
Module
|
Purpose
|
extension.lisp
|
First version of PICS
allows to define PICS components, Component Methods, and
make-connection construct to connect components together.
|
extension1.lisp
|
Earlier Version of PICS is
extended to support hierarchical component definition (i.e. Components
with rep-list).
|
nmcon3.lisp
|
Set of macros to define
connector, connector-method and system of components and connectors.
|
soapmp.lisp
|
A set of SOAP message
Processing macros.
|
Example Programs
|
Example
|
Purpose
|
hwinPICS
|
"Hello World!" Program in PICS
|
broadcastor.lisp
|
A PICS program having a
broadcaster type of connector that will connect to multiple
broadcasters and receivers and selectively broadcasts the message.
|
1. mesponse.lisp
2.req-rep.lisp
3. cache.lisp
4. ed.lisp
|
Message Exchange Patterns found
Serviced Oriented Architecture (SOA) are captured using PICS connector.
|
pun-sub.lisp
|
Publish-Subscriber Pattern
in PICS
|
med.lisp |
Mediator Pattern in PICS |
migrator.lisp
|
Object Migration in ARC is
simulated in PICS
|
jcainPICS.lisp
|
Life Cycle Management Module of
J2EE Connector Architecture is described in PICS.
|
FAQ
- Why prototyping is required at architectural level?
Prototypes are used to explore,
experiment and communicate different design alternatives. At an
architectural level design, prototypes bring out components and
connectors in the proposed system and demonstrate interactions among
them. Architectural prototypes are also used to test proposed
implementation. Architectural prototypes are tested against usage
scenarios.
- How PICS differs from other ADLs?
Most of the ADLs like ACME/UML are
descriptive in nature. PICS is an executable architectural descriptive
language. Components and connectors defined in ADLs have state and are
associated with method implementation.
- How PICS differs from other executable architectural description
languages?
Rapide, ArchJava and PrismMW are some
of the other executable architectural definition language. Basic
difference between these languages and PICS lies in the mechanism used
to implement interactions among component. PICS achieves interaction
among component through procedure call mechanism. Multicasting
semantics is associated with PC mechanism used in PICS.
Rapide/PrismMW uses event call mechanism to achieve component
interaction. In Archjava connection logic is embedded in components but
in PICS connections are externally specified.
- What are the main features of PICS?
- PICS is an executable architectural description language.
- PICS supports generic connectors.
- Hierarchical definition of Component is supported in PICS.
- Multicasting Procedure call mechanism is used to achieve
component interaction.
- Can I
generate PICS code from other ADLs/ or any other modeling languages?
Cuurently, no
such tool is available.
- How to
install and run the PICS software?
- Install gcl.rpm using Redhat Package
Manager install option i.e. (rpm -i gcl.rpm)
- Copy MOP library
files i.e. closette.lisp and
newcl.lisp in you
working directory.
- Copy PICS core files i.e. extension1.lisp, nmcon3.lisp, and
message-processing.lisp
in your working directory.
- Edit your PICS program in your
favorite editor.
- Start gcl .
- Load the program in gcl
environment i.e. <( "load <yourfilename.lisp>")>
Reports and
Publications
- Neeraj Bhope, R.. K. Joshi Towards
Pure Component Programming, 2001