A walk through a CCAT application

Walk through a step by step application configuration and run using CCA components and the CCAT composition GUI. More detailed technical information can be found here. Below we discuss traditional steps in composing distributed applications using components, and how CCAT facilitates each.

Application development with software components consists of the following steps:

  • Figuring out what components you need for your application

    This requires some kind of component discovery service. In CCAT, all components can make use of the Information Directory Service for this purpose. This allows any component to search through directory contexts to lookup as well as publish component information.

  • Choosing resources for the application

    Performing this step automatically requires a sophisticated resource reccommender to advise the user about computing resources (machines, network) on which a particular component should be run to make the application perform efficiently. CCAT curently requires users to manually decide computing resources to be used, but allows a user to choose between one of many possible installations of a component.

  • Creating components and hooking up the application

    This involves creation of processes on selected computing resources and exchange of instance handles between these running components so that they are capable of communicating with each other, making method calls, etc. CCAT components are bundled with a Creation Service and a Connection Service to fulfill these needs, so that any component is capable of creating others, making connections, etc.

  • Monitoring the application

    This step involves gathering data from components to monitor their performance and to check if they are working correctly. This step may include automatic fault tolerance of some kind. CCAT does not have infrastructure for sophisticated monitoring of components right now but allows components to publish information to event channels which can be shared, so that components can publish their state regularly and the information is delivered interested parties. More information on the event channel can be found here.

  • Collaboration

    CCAT allows instances to be registered. Registries can be looked up to get a handle to the registered instances. USers can then connect to these instances, invoke methods on known ports, etc. CCAT makes use of the Registry Service, which comes bundled with every CCAT component, to do this.

    Component and instance information (stored in instance directories and registries respectively) consist of XML files. These can be emailed, printed out, etc. with ease. ore information on the XML formats and DTDs can be found here.

Click here to begin stepping through a sample interaction. This particular application uses a set of C++ components (mostly Fortan code with C++ wrappers) for solving a partial diferential equation (PDE).