Agile Automation sunset

Agile Automation, Inc.

PO BOX 336405

North Las Vegas, NV 89033-6405

office (702) 489-8490

fax (702) 489-9203

Agile Abstractions

A key concept to an agile architecture is being able to define the many device components to work at various abstraction layers within the architecture. The hardware components are located in the bottom layer, appropriately known as the physical layer. All communications to and from a device will go through its specific components located in the physical layer. Agile applications, however, should be isolated from the physical layer and never communicate directly with its components. This prevents applications from being dependent on any device and keeps it agile. A logical layer, therefore, contains complementary components to the physical layer allowing the application and other components a decoupled method to communicate with the hardware devices. The abstractions continue further, where high-level layers are used to group logical layers into larger complex logical devices.

Physical Devices

The physical devices abstraction layer contains software components that will communicate directly with the physical devices configured in a system. Each device has its own specific software component optimized for that device. There will be one instance of a control object for every physical device connected with the computer. A physical device, however, may be comprised of many individually controlled devices. The component object will map each controllable device to an interface suitable to the logical layer. This interface, therefore, only exposes its individual devices to all other components and not the physical device itself. This helps to ensure the application is never dependent on any specific device in meeting the goal of an agile architecture.

Logical Devices

The logical devices abstraction layer contains many software components capable of connecting with the interfaces exposed by the physical component interfaces. Logical components provide a service to the application without reference to a physical device. The logical component merely behaves in a manner described by its data type and could refer to any physical component with the same properties. The system configurator maps each component in the logical layer to the individual devices in the physical layer as required, whereby defining how the application uses its physical devices. The system configurator can modify the map to reflect physical devices added to or removed from the system. This mapping also allows the system configurator to configure multiple systems differently for different physical devices based on the system requirement.

Container Devices

The container devices abstraction layer is not required in a system. It is similar to the logical devices layer except its components may connect to more than one physical component. Their purpose is to represent logical devices that can coordinate multiple physical components with a single command as well as by individual commands. Container components can combine multiple physical components from the same physical device or from multiple physical devices. In fact, each physical component could feasibly be different types of hardware provided they exhibit the proper properties.

Work Cells

The work cells abstraction layer is not required in a system. It is similar to the container devices layer in that its components may connect with many physical components. The work cell components may also connect with container components; and they will usually define new functionality specific to the work cell it represents. The work cell component represents the workspace as it is used. Normally an application will only use one work cell component, but it may contain as many as the system configuration will accommodate. The application uses the work cell component by invoking one or more of its methods. These high-level methods will usually execute a series of operations to accomplish their task.