PalCom

The PalCom Open Source Toolbox contains various tools, services, assemblies, (simulated) devices and other components for making computing palpable.

See:
          Description

Packages
ist.palcom.applicationlauncher The Palcom Application Launcher is used for launching PalCom services from a jar file and PalCom assemblies without starting any developer environment.
ist.palcom.assembler Provides the implementation of the PalCom bytecode commandline assembler pal-asm.
ist.palcom.assemblies Provides classes that can execute PalCom assemblies.
ist.palcom.assembly.commandline Commandline-based (non-graphical) tool for loading and starting a number of assemblies.
ist.palcom.assembly.manager Provides an assembly manager that manages the lifecycle of assemblies.
ist.palcom.ast  
ist.palcom.base Provides Java versions of (a subset of) the classes in the PalVM Smalltalk libraries.
ist.palcom.base.io Provides PalCom io classes such as File and InputStream for basic io.
ist.palcom.base.networking Provides low-level PalCom networking classes.
ist.palcom.bytecode Definition of the bytecodes understood by the PalCom Virtual Machine pal-vm.
ist.palcom.collections Provides PalCom collection classes.
ist.palcom.communication Contains the CommunicationManager class, which implements common features used by packages in the Communication Layer in the PalCom communication stack.
ist.palcom.connections Contains the ConnectionsManager class, which is used for establishing connections between PalCom services.
ist.palcom.contingency.manager Provides a contingency manager along with the contingency monitor and the resource directory that solve together the contingency events occuring on the monitored assembly.
ist.palcom.contingency.manager.events This package provides contingency events sent between the contingency management entities.
ist.palcom.contingency.manager.events.query This package provides resource queries sent between the contingency management entities.
ist.palcom.contingency.manager.filters This package provides various resource filters.
ist.palcom.contingency.manager.filters.decl This package provides various resource declaration filters.
ist.palcom.contingency.manager.filters.info This package provides various network resource filters.
ist.palcom.contingency.manager.helpers This package provides auxiliary functions on resource descriptors.
ist.palcom.contingency.manager.measures This package provides relations for resource comparison in order to determine their substitutability.
ist.palcom.contingency.manager.utils This package provides several useful utilities.
ist.palcom.debugging Provides a utility class for debugging support.
ist.palcom.device Provides a PalCom device framework.
ist.palcom.disassembler Provides the implementation of the PalCom bytecode commandline component disassembler pal-dis.
ist.palcom.discovery Contains the DiscoveryManager class, which is for announcing PalCom devices, services and connections (2nd-order resources) to other devices and services.
ist.palcom.eclipse.browserplugin  
ist.palcom.eclipse.browserplugin.actions  
ist.palcom.eclipse.browserplugin.editors  
ist.palcom.eclipse.browserplugin.util  
ist.palcom.eclipse.browserplugin.views  
ist.palcom.eclipse.xml.editors  
ist.palcom.hgraph This package holds the Hierarchical Graph (henceforth abbreviated H-Graph) data structure.
ist.palcom.hgraph.manager Contains classes implementing an H-Graph Manager providing both a synchronous and an asynchronous interface to the entirety of the H-Graph in which it is installed.
ist.palcom.info Contains data-structure and utility classes for managing PRDData objects.
ist.palcom.jtst  
ist.palcom.localnetworkview Provides a class PalcomDeviceTree that describes a device's view of the world.
ist.palcom.mal Contains classes implementing the Media Abstraction Layer in the PalCom communication stack.
ist.palcom.mal.bt Contains an implementation of a MediaManager for Bluetooth.
ist.palcom.mal.ir Contains an implementation of a MediaManager for IR.
ist.palcom.mal.udp Contains an implementation of a MediaManager for UDP.
ist.palcom.messaging Contains the PointToPointManager class, which is for communication using single-shot messages.
ist.palcom.palbox  
ist.palcom.palcomthreads Provides PalcomScheduler and PalcomThread, which can be used for implementing concurrency in PalCom applications.
ist.palcom.pubsub Contains the PubSubManager class, which implements publish/subscribe communication in the Communication Layer of the PalCom communication stack.
ist.palcom.rascal Provides reliable communication to PalCom devices making autonomic decisions when sending/receiving application messages to/from target nodes.
ist.palcom.rascal.internalevent  
ist.palcom.rcpbrowser  
ist.palcom.reflect.dependency Provides the implementation of the commandline PalCom Component Dependency Analyzer showing dependencies of pal-vm components produced by pal-st, pal-j, or pal-asm.
ist.palcom.resource.communication Provides an XMLFactory that handles resource descriptors used in the Communication Layer of the PalCom communication stack.
ist.palcom.resource.descriptor  
ist.palcom.resource.function Provides an XMLFactory that handles resource descriptors used in the Function Layer of the PalCom communication stack.
ist.palcom.resource.manager Provides the class ResourceManager, which performs the discovering part of the PalCom discovery protocol.
ist.palcom.resourceAddressing  
ist.palcom.routing Provides interfaces and classes to create a new routing manager and a simple basic routing manager as an example of use.
ist.palcom.routing.util Routing specific classes used by different routing managers.
ist.palcom.routing.util.messages Provides an interface for routing messages and different implementations of routing messages.
ist.palcom.service.manager Provides a service manager that can instantiate services dynamically.
ist.palcom.services Provides a PalCom service framework.
ist.palcom.services.ais Receives and parses GPS positions of all seagoing vessels above a given size, along with the name of the vessel.
ist.palcom.services.ais.source Different sources of AIS signals.
ist.palcom.services.alarmhrhr  
ist.palcom.services.axis Handles communication with a range of Axis TCP/IP networking cameras.
ist.palcom.services.biobelt  
ist.palcom.services.echo Provides an almost minimal example of a PalCom device with one service, intended as a starting point when writing a small palpable device.
ist.palcom.services.googleearth Facilitates the display of geo-tagged photos within a locally running Google Earth application.
ist.palcom.services.id.rfid Service for wrapping a RFID (Radio Frequency Identification) scanner unit.
ist.palcom.services.incubator.alarm Provides an example device with a corresponding service to handle potential alarm situations triggered by the code related to the Incubator scenario.
ist.palcom.services.incubator.control This service control accepts several body parameters and based on some function raises an alarm.
ist.palcom.services.incubator.display Provides a display device (3 * 7 segment led display) that takes a numeric input and presents it on the display.
ist.palcom.services.location.compass Provides readings from a digital compass.
ist.palcom.services.location.compass.tokenizer Utility classes for internal use in the compass service.
ist.palcom.services.location.gps Provides location determination using a GPS (Global Positioning System) receiver.
ist.palcom.services.location.palgeoconversion Performs conversions between various geographic formats, e.g.
ist.palcom.services.location.palgeoconversion.dt_cc Various datum representation methods, and conversion implementations.
ist.palcom.services.location.palgpsparser Facilitates parsing of raw GPS NMEA sentences into latitude/longitude pairs (GPS positions).
ist.palcom.services.location.palgpsparser.datatypes Utility classes used by the GPSParserService.
ist.palcom.services.location.palgpsparser.exceptions Exceptions related to/thrown by the GPSParserService
ist.palcom.services.location.palgpsparser.tokenizer Utility class used by the GPSParserService for tokenizing strings
ist.palcom.services.mattress  
ist.palcom.services.overview  
ist.palcom.services.poetry Contains simulated devices which produce and display poetry.
ist.palcom.services.proximity  
ist.palcom.services.respirator  
ist.palcom.services.saturimeter The Saturimeter service has responsibility for providing SpO2 values and heart rate for a baby attached to the saturimeter.
ist.palcom.services.tilessimulator The tiles simulator is a simulation framework for the Active Surfaces concept.
ist.palcom.services.tilessimulator.communication Classes used for communication in the tiles-simulator framework
ist.palcom.services.tilessimulator.games.puzzle Classes defining the puzzle game
ist.palcom.services.tilessimulator.gui The GUI part of the tiles simulator framework
ist.palcom.services.tilessimulator.services Contains the PalCom services used in the framework and in the games.
ist.palcom.services.timer Provides a small PalCom device with a timer service that sends out commands at a specified interval.
ist.palcom.simulated.axiscamera Contains classes for a simulated Axis network camera.
ist.palcom.simulated.device Provides a framework for building simulated devices.
ist.palcom.simulated.device.factory Contains a class AbstractDeviceFactory which is the base class for a factory that can create simulated devices with persistent identities.
ist.palcom.simulated.device.widgets Contains Swing widget help classes for simulated devices.
ist.palcom.simulated.geotagger Contains classes for a simulated GeoTagger scenario.
ist.palcom.simulated.geotagger.start Contains classes with main methods for starting simulated GeoTagger devices.
ist.palcom.simulated.handheld Contains classes for a simulated handheld device with a simple PalCom browser application.
ist.palcom.simulated.handheld.browser Contains a Swing component which is a small, simple PalCom browser.
ist.palcom.simulated.handheld.browser.applet  
ist.palcom.simulated.handheld.browser.infojtree Contains a Swing component class which renders PRDData objects in a graphical tree view.
ist.palcom.simulated.handheld.browser.ui Contains classes for rendering PalCom service descriptions as Swing components.
ist.palcom.simulated.mstone Contains classes for a simulated MStone device.
ist.palcom.simulated.slideshow Contains classes for a simulated slideshow presentation scenario.
ist.palcom.simulated.slideshow.slides Contains slide images for ist.palcom.simulated.slideshow.
ist.palcom.st Provides the implementation of the commandline PalCom Smalltalk compiler pal-st producing components to be executed on the PalCom Virtual Machine pal-vm.
ist.palcom.st.ast  
ist.palcom.st.generators  
ist.palcom.storage.persistent Contains classes for for handling persistent storage.
ist.palcom.storage.pfs Contains classes a palcom filesystem.
ist.palcom.storage.pio Contains classes for Palcom IO to Storage.
ist.palcom.storage.tags Contains classes for tag persistent objects.
ist.palcom.visualization  
ist.palcom.visualization.engines  
ist.palcom.visualization.engines.swing  
ist.palcom.visualization.engines.swing.utils  
ist.palcom.visualization.engines.swing.widgets  
ist.palcom.visualization.engines.swing.widgets.custom  
ist.palcom.visualization.hgraphproxy  
ist.palcom.visualization.manager  
ist.palcom.xml Provides classes for parsing and unparsing XML.
org.kxml2.io The third-party open-source library kXML 2 for parsing XML.
org.xmlpull.v1 The third-party open-source API XMLPull for parsing XML.

 

The PalCom Open Source Toolbox contains various tools, services, assemblies, (simulated) devices and other components for making computing palpable.

Traditional frameworks for ubiquitous (or pervasive) computing aim at supporting the highly dynamic computing environment where mobile and stationary devices connect and coordinate with means to do so seamlessly and automatically. This is fine in many situations, but if the user is unable to understand and control the system(s) problematic scenarios are likely to occur. That is why we claim that systems should support palpability: We do not want to make the computer ``invisible'', unless we are also able to make it visible if the need for inspecting it arises.

The PalCom Toolbox is a framework for developing computing applications supporting palpability. The PalCom Java packages allow the application developer to address support for palpability in the application in various ways, such as:

The PalCom toolbox contains PalCom services and PalCom Components to help developers build palpable applications, but it does not ensure this goal on its own. Palpability happens in use of systems allowing the user to obtain understanding and control of the system. Therefore, we find it important for future developers of palpable computing not only to get acquainted to the open source toolbox described as presented via the Java packages, but also to the theoretical, methodological and conceptual foundations of palpable computing described elsewhere.

For more information on the PalCom project and Palpable Computing, please see: