Purely Interconnected Components System
(PICS)
People
Software  FAQ
Reports and Publications


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
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.

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.

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.

    1. PICS is an executable architectural description language.
    2. PICS supports generic connectors.
    3. Hierarchical definition of Component is supported in PICS.
    4. Multicasting Procedure call mechanism is used to achieve component interaction.
             Cuurently, no such tool is available.
    1. Install gcl.rpm using Redhat Package Manager install option i.e. (rpm -i  gcl.rpm)
    2. Copy  MOP library files i.e. closette.lisp and newcl.lisp in you working directory.
    3. Copy PICS core files i.e. extension1.lisp, nmcon3.lisp, and message-processing.lisp  in your working directory.
    4. Edit your PICS program in your favorite editor.
    5. Start gcl .
    6. Load  the program in gcl environment i.e. <( "load <yourfilename.lisp>")>



Reports and Publications 
  1. Neeraj Bhope, R.. K. Joshi Towards Pure Component Programming, 2001