a distributed component-based software architecture and framework for laboratory automation systems...
TRANSCRIPT
![Page 1: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/1.jpg)
A Distributed Component-based Software Architecture and Framework for
Laboratory Automation Systems
Venkataramanan Kuppuswamy
![Page 2: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/2.jpg)
Meanwhile….
![Page 3: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/3.jpg)
Guidelines for a good Lab Automation System s/w
• Extensible
• Not tied to a specific vendor or manufacturer
• Distributed across multiple computers or across different
process spaces, to enhance robustness & performance
• Responsive: Provides timely feedback to client & handles
multiple requests simultaneously
• Thread-Safe
![Page 4: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/4.jpg)
Existing Software
• Commercial lab automation software
• Open source robotics frameworks. E.g. Orcos Robotics, Orca
Robotics & Robot Operating System (ROS).
• Other robotics frameworks such as Microsoft Robotics
Developer Studio (MSRDS)
• Open source microscopy software like μManager
• Device abstractions such as Interchangeable Virtual
Instruments
![Page 5: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/5.jpg)
Drawbacks
• Expensive, closed source & not extensible
• Domain specific. E.g. μManager for Microscopy
• Do not provide a comprehensive design solution to develop
thread-safe & responsive software
![Page 6: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/6.jpg)
Contributions of The Thesis
• Developed Component Oriented Distributed Architecture
(CODA)
• Developed CODA Framework
![Page 7: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/7.jpg)
CODA
• Architecture to develop laboratory automation system software
• Based on autonomous components that could be distributed
• Provides design solution for developing thread-safe &
responsive components
• Provides a consistent way to create, use & destroy components
![Page 8: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/8.jpg)
CODA Component
• Autonomous software module that performs an useful task, or
related set of tasks (control devices, imaging etc.)
• Can support multithreading
• Communicates by message passing. Every message has Body,
ACK Port & Operation Complete (OPC) Port
• Stateful
• Does not use shared memory
![Page 9: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/9.jpg)
Component High Level Design
User LayerNotification Messages
Component API Messages
Notification Port Main Message Port
Exclusive Message Processing DispatcherNotification Mechanism
Component Infrastructure Layer
Component Implementation Layer Operation Requests
Notification Requests
State data
Message Validation
Operation Implementation
Component Specific Implementation
![Page 10: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/10.jpg)
Operation Implementation
• Actions
• Quick, not prone to errors. Ex: updating state data of a device.
• Executed synchronously w.r.t dispatcher (hence thread safe)
• Tasks
• Lengthy, prone to error. Ex: device communication, reading from file,
database etc.
• Executed asynchronously, hence making component responsive
• Does not update state data directly, but utilizes message passing, hence
ensuring thread safety
![Page 11: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/11.jpg)
Message Passing
User Software
Create Messages & Notif ication
Ports
User Component
Wait for ACK
OPC Notif ication
Action Message
Component
ACK Notif ication
Wait for OPC
Wait for ACK
OPC Notif ication
Task Message
ACK Notif ication
![Page 12: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/12.jpg)
Interface Object
• Simplifies component use
• Used by clients to communicate with the component
• Provides an uniform way of accessing the component
irrespective of local or remote
• Local: Component in same process space as client
• Remote: Component in different process space (executable) on
same computer, or on a entirely different computer
![Page 13: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/13.jpg)
Interface Object (cont.)
Interface Object
Create Message & Notif ication
Ports
Interface Object
Component
Component
ACK Notif ication
Wait for ACK
OPC Notif ication
API Message
Client Software
Client
API 'Wrapper Routine'
(Returns OPC Port)
![Page 14: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/14.jpg)
Minimum Component Behavior
• Configure
• Setting values needed to successfully “Open” the component. Ex:
setting comm port for a serial device (e.g. stage controller)
• Open
• Setting up component for use. Ex: opening a serial port
• Close
• Cleans up component after use. Ex: closing a serial port.
• Component can be safely destroyed only after “Close”
![Page 15: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/15.jpg)
Minimum Component Behavior (cont.)
Ready
Configured
Shutdown
OpenClose
Error Opening
Error Configuring
*Note: Configure refers to any of the family of Configure Messages
Configure
ConfigureError Configuring
![Page 16: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/16.jpg)
CODA Summary
• An architecture to develop distributed component based
software that is responsive & thread-safe
• Based on stateful, asynchronous message passing components
• Components execute Actions & Tasks in response to messages
• Interface object simplifies component usage
• All components must implement a required minimum
behavior defined by CODA
![Page 17: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/17.jpg)
CODA Framework
• Helps develop CODA compliant components
• Enables development of responsive, thread-safe & extensible
software.
• Develop code that conforms to Unified Modeling Language
(UML) state charts
• Very easy to make components remotely accessible
• Abstractions for devices such as stage controller & camera
![Page 18: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/18.jpg)
CODA Framework (cont.)
• Concrete implementations for several common stage
controllers & IMAQdx compatible cameras
• Software developed using the framework is scalable with
number of cores (Microsoft Robotics Studio (MSRDS))
• Developed using MSRDS Concurrency Coordination Runtime
(CCR) & Decentralized Software Services (DSS)
• Compatible with LabVIEW
![Page 19: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/19.jpg)
Framework Component High Level Design
![Page 20: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/20.jpg)
Transition Execution
![Page 21: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/21.jpg)
Transport
• Abstracts out details involved in passing message to
component.
• Deep clones every data that is passed to & from component –
ensures components are decoupled & completely autonomous
• Two implementations
• Local: Communicate with local components
• DSS: Communicate with remote components
![Page 22: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/22.jpg)
Passing Message to a Local Component
![Page 23: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/23.jpg)
Passing Message to a Remote Component
![Page 24: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/24.jpg)
Camera Abstraction
![Page 25: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/25.jpg)
Stage Controller Abstraction
![Page 26: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/26.jpg)
Imaging Application - A Case Study
• Models a physical system consisting of a camera mounted on a
stage controller
• Focus Adjustment
• Auto Focus
• Focus Positioning
![Page 27: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/27.jpg)
Without using the framework
• Camera Interfacing & state machine like control code
• Stage Controller interfacing & state machine like control code
• Imaging Application that talks to camera & stage controller
having state machine like control code
• Networking infrastructure to make components distributable
![Page 28: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/28.jpg)
Using the Framework
• Stage Controller Implementation
• Camera Implementation
• Imaging Application talking to abstract stage controller &
camera
• Very little networking code
![Page 29: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/29.jpg)
CODA Framework Summary
• Implements the concepts described in CODA
• Helps develop software that is distributed, responsive, thread-
safe & scalable
• Has device abstractions for camera & stage controller, and
concrete implementations for several manufacturers,
• Imaging Component
• Can be extended to support additional functionalities
![Page 30: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/30.jpg)
Contributions of The Thesis
• Developed Component Oriented Distributed Architecture
(CODA)
• Developed CODA Framework
![Page 31: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/31.jpg)
Future Work
• Improve the state machine design to include
hierarchical/composite states
• Device abstractions for laser, pumps etc.
• More subsystems such as multi-axis motion
• Strategy to prevent deadlocks
![Page 32: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/32.jpg)
Acknowledgements
• Dr. Deirdre Meldrum, Dr. Roger Johnson, Mr. Dean Smith, Dr.
James Collofello & Dr. Hessam Sarjoughian
• All CBDA lab members & in particular Vivek, Inian & Sai
• Engineers at MSRDS forums
• My parents, sister & brother in law
• Friends, in particular Ganesh, Sriram, Parth, Venkatakrishnan,
Aravindan, Dilip, Raj, Vaibhav, Nikhil, Glenn, Sathish &
Tosha
![Page 33: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/33.jpg)
Back Up Slides
![Page 34: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/34.jpg)
Messages
• Has ACK port and Operation Complete (OPC) Ports
• Port: Receives message and transfers to another
module for processing
• ACK: Indicates a message has been successfully
received by component & sent for processing
• OPC: Indicates a processing of message has been
complete
![Page 35: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/35.jpg)
Framework
• Talk a bit about UML state machines and robotics studio
• Advantages of state machines• Used robotics studio to get scalability.• State machines, deterministic• Already written lot of code that the developer
does not have to write• How actions and tasks are implemented• 2-3 minute video of the imaging software
![Page 36: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/36.jpg)
Demo of a Imaging application
• TODO: Add video of the imaging application
![Page 37: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/37.jpg)
About the demo Software
• Typical automation scenario
• Sophisticated
• Responsive
• Change deployment without code change
• Works with any camera & stage compatible with our
framework
![Page 38: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/38.jpg)
Development & Test Strategy
• Developed the base abstract component
• Implemented a test component that covered all uses
cases for a simple use of a state machine
• Developed a test application and tested the test
component. Found issues & fixed it
• Developed a camera abstraction
• Developed an implementation for an Imaqdx compatible
camera
![Page 39: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/39.jpg)
Test SuitesTest Suite Features Tested
TestComponent Tested the entire infrastructure. This includes testing the base component, base component state machine, state machine creation, state machine engine processing of tasks & actions, error handling, base component interface object, local & DSS transport.
StageControllerTest Functionalities of stage controller which includes open, Configure, Close, Velocity Move, Position Moves, Setting Properties such as Acceleration & Velocity, Stopping Motion & Homing
CameraTest Functionalities of camera which includes Open, Configure, Close, Setting Properties such as exposure time, Grabbing Images & Stop Grabbing Images
ImagingTest Functionalities of camera which includes Open, Configure, Close, Grabbing Images, Stop Grabbing Images, Focus Move, Stop Focus Motion & Focus Adjustment
![Page 40: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/40.jpg)
Lab Automation System Software
• Controls & coordinates multiple different types of devices
• Ex: Motion control stages, cameras, lasers, pumps & valves
• Devices have own memory, processing unit, work independently &
have different manufacturers
• Certain devices & algorithms need specialized hardware and software
to run effectively
![Page 41: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/41.jpg)
Imaging Component - A Case Study
![Page 42: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/42.jpg)
Imaging Component Creation Steps
• Create all Main Messages & Internal Messages
• Create Main Message Port, Internal Message Port, State
Enumeration, Config Data & State Data classes
• Create new ImagingComponent deriving from base
component
• Compose with stage controller & camera interface objects
• Implement Open, Configure & Close methods
• Extend the base component state machine & add the imaging
component state machine
![Page 43: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/43.jpg)
Lab Automation System
• Automation
• Increases productivity
• Lab automation Software interfaces with devices
• Devices have own memory, processing unit, work independently &
have different manufacturers
• Certain devices & algorithms need specialized hardware & software
![Page 44: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/44.jpg)
Previous Work (cont.)
• μManager
• Open source, freely available software for automating microscope
operations
• Limited application domain
• Interchangeable Virtual Instruments
• Open instrument driver architecture
• Abstracts out common functionality available in instruments
• Used to automate test & measurement equipment
![Page 45: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/45.jpg)
Action
User Layer
Create Message & Notif ication
Ports
User
Component Infrastructure
Layer
Component Implementation
Layer
Message Processing & Dispatcher
Notification Mechanism
Message Validation
Operation Implementation
Operation Request(Message)
ACK Notif ication
Wait for ACK
Operation(Message)
OPC Notif ication
State Change Notif ication()
[ Message Valid ? ]
Component Specific
Implementation
State Change Notif ication
Validate(Message)
API Message
![Page 46: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/46.jpg)
Task
Component Infrastructure
Layer
Component Implementation
LayerNotification Mechanism
Message Validation
Operation Request( Message)
ACK Notif ication
StartTask( Message)
OPC Notif ication
[ Message Valid ? ]
Component Specific
Implementation
Message Processing & Dispatcher
Operation Implementation
Validate( Message)
API Message
Update State Data
UpdateStateData( Data)
State Change Notif ication State Change Notif ication()
State Change Notif ication()
State Change Notif ication
Task Finished
TaskFinished()
![Page 47: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/47.jpg)
Message Processing
![Page 48: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/48.jpg)
Transition Execution
![Page 49: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/49.jpg)
Decentralized Software Services (DSS) Classes
• DSS Client: Communicates to a remote component by sending
messages to the DSS server which in turn sends it to the
component.
• DSS Server: Composes a remote CODA Component. Clients
of the component can access the it only through DSS server.
• DSS client & DSS server translate component request &
response messages to DSS requests & responses, & vice-versa
• Takes care of creating & safely disposing DSS resources
![Page 50: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/50.jpg)
Abstract Base Component Class
• Abstracts out functionality needed by any component
• New components derive from the base CODA infrastructure,
and then add component specific details – this dramatically
decreases development time
• Derived components implement the required behavior & can
extend the base state machine and introduce new behavior
• Takes care of creating & safely disposing CCR resources
![Page 51: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/51.jpg)
Abstract Base Component Class (cont.)
• Main Message Port
• Internal Message Port
• State Machine
• State Data
• State Enumeration
• Config Data
![Page 52: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/52.jpg)
Abstract Base Component Interface Object
• Has API wrapper methods for Configure, Open & Close
• Has helper methods to talk to the transport
• Takes care of creating & safely disposing CCR resources
• Takes care of safely disposing the Transport
• Other interface objects derive from it & add component
specific API wrapper methods
![Page 53: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/53.jpg)
Component Creation Factory
• Single point of component creation, irrespective of local or
remote
• Component Creation Creation Steps
• Create a new local/remote component with the given creation details
(Name, Type, IP Adress, Port etc.)
• Create a new Transport & bind it to the Component
• Create a new Interface Object & bind it to the Transport
• Returns the interface object to the client
![Page 54: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/54.jpg)
Local Component Life Time Management
![Page 55: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/55.jpg)
Remote Component Life Time Management
![Page 56: A Distributed Component-based Software Architecture and Framework for Laboratory Automation Systems Venkataramanan Kuppuswamy](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649d0a5503460f949dcffe/html5/thumbnails/56.jpg)
Imaging Component Creation Steps (cont.)
• Create new DSS client & DSS server classes & register the
API messages for remote transport
• Create a new interface object class that derives from the base
interface object class & add the new API message wrappers
• The Imaging Component can work with any camera & stage
controller compatible with the framework