View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

FracTalk Documentation


What is FracTalk?

FracTalk is a component-based programming platform compliant with the ObjectWeb Fractal specification. Fractal describes a hiearchichal component model with reflection facilities. These characteristics makes us choose Fractal as the model to use for experiments related to our research in software component. For sake of openness and flexibility, our implementation relies on a dynamic language (Smalltalk).

Programming with FracTalk

Makers and Directories

To ease development, FracTalk introduces two concepts: Makers and Directories.

Caption

Uploaded Image: component.png 
              Uploaded Image: serverItf.png Server Interface
              Uploaded Image: clientItf.png Client Interface
              Uploaded Image: clientCollItf.png Client Collection Interface
              Uploaded Image: clientOptItf.png Optional Client Interface
Note: This representation apply to both primitive and composite components alike.

Examples

Transcript [Code]

Specification

Smalltalk has an object that acts as a console which is accessible through the global variable Transcript. The goal of this example is to encapsulate the Transcript object into a simple FracTalk primitive component we name also 'Transcript'.
Uploaded Image: transcript.png
This component has only a single server interface which provides two operations:

Transcript Component Step by Step


Simple Chat [Code]

Specification

In this example we show how to build a composite component named 'SimpleChat', which is a very simple chat example. Two subcomponents are involved. One is the transcript borrowed from the previous example (see Transcript) and the second is a new component named 'Chatter' which uses the Transcript.
Uploaded Image: simpleChat.png

The Chatter component has:

Simple Chat Step by Step


Chat with GUI [Code]

Specification

Now we want to build a more complex (but still non-distributed). This example show an implementation for 2 chatters with GUI interfaces for the input and display of text. We use a composite component which represent an interactive chatter and a conference component which distribute a message sent by a chatter to all the chatters (including himself).
It shows the 3 types of binding (normal, export and import) and the use of collection interfaces.

General view:
Uploaded Image: chatWithGUIg.png

Architecture details of the InteractiveChatter component. It uses TextDisplay component similar to the Transcript component shown above except that it encapsulate a new Transcript object instead of using it directly.
Uploaded Image: interactiveChatter.png

The Conference component has:

Chat with GUI Step by Step


Chat with GUI (shared component version) [Code]

Specification

This last (non-distributed) example is the same as above except that the Conference Component is a Shared Component between 2 chatters.
Uploaded Image: chatWithSharingWithGUI.png

Chat with GUI and Shared Component Step by Step




Links to this Page