Discovery Architecture Overview
This chapter explains the technical architecture behind xAssets Network Discovery. It can be skipped if your discovery has already been preconfigured or the default configuration meets your needs. It is intended for administrators who need to understand how the components fit together, customise discovery behaviour, or troubleshoot complex issues.
When You Need This Chapter
- Setting up discovery for a multi-site network with separate Collection Servers
- Choosing between agentless and agent-based discovery
- Customising which data is collected
- Troubleshooting discovery failures that the basic troubleshooting guide does not resolve
- Planning discovery for large networks (bandwidth and scheduling considerations)
Discovery Components
The discovery engine is built from several components. Not all are used in every discovery run -- you select or create the script most appropriate to each requirement.
| Component | Role |
|---|---|
| Browser-based system | Launch and schedule discovery runs from the xAssets web interface |
| XDSL Discovery Scripts | Define how the network is scanned, which devices are targeted, and what data is collected. Compiled into .NET executables when saved. |
| Collection Server | Coordinates discovery on a network segment. Can be the application server itself, or a separate server communicating via web services. |
| PCAnalyser Executable | A fast, low-impact agent that runs on each target computer's CPU (0.25--4 seconds), collects data, and writes it back to the PCAnalyser share without modifying the client machine. |
| PCAnalyser File Share | Shared folder where the PCAnalyser executable resides and where all discovery data files are written |
| Logon Script Discovery | Runs the PCAnalyser executable automatically each time a user reboots, writing a PCA file to the Collection Server |
| Batch Processor | A service on the application server that executes queued discovery jobs and transformations |
| "Load Now" Data Loader | Loads discovered data from PCA/PCZ files into the xAssets SQL Server database |
How the Components Work Together
The typical discovery flow is:
- A user launches discovery from the web interface (or a scheduled job triggers it)
- The Batch Processor queues the discovery job
- The Collection Server runs the XDSL script, which scans the target machines using the configured technologies
- Discovery data is written as files (PCA, PCZ, PCV, PCS) to the PCAnalyser share
- The Data Loader reads these files, processes them through the recognition engine, and writes the results to the SQL Server database
- Reports and dashboards show the newly discovered or updated assets
Discovery Technologies
An XDSL script can use any combination of the following discovery techniques:
| Technology | Type | Best For |
|---|---|---|
| WMI (Windows Management Instrumentation) | Agentless | Windows machines -- comprehensive hardware and software data |
| Remote Registry | Agentless | Reading specific registry values from Windows machines |
| SNMP | Agentless | Network devices, printers, Linux/Unix machines |
| PCAnalyser agent | Agent (transient) | Lightweight, fast data collection on Windows machines |
| VBScript | Agent (transient) | Custom scripts for specialised data collection (e.g., VMware) |
| SSH | Agentless | Unix, Linux, and Mac discovery |
| HTTP/HTTPS/XML | Agentless | Devices with web-based management interfaces (e.g., Cisco IP phones) |
Resident Agents
Agentless discovery is preferred in most installations because it requires no software to be installed on target machines. However, resident agents (the PCAnalyser installed as a scheduled task or Windows service) can be deployed when:
- High-frequency audits are required
- VBScripts need to run regularly for usage monitoring
- Remote or intermittent machines need to report data whenever they connect
About XDSL
XDSL (xAssets Discovery Scripting Language) is a purpose-built language for network discovery. XDSL transformations are stored in the database as XML files and compiled into .NET executables whenever the script is edited. Each executable contains the logic and configuration needed to discover an entire network or a specific segment.
You do not need to write XDSL code to use discovery -- the default scripts cover most scenarios. XDSL is only relevant when you need to create custom discovery templates.
Chapter Structure
| Page | What It Covers |
|---|---|
| Choosing a Discovery Strategy | Which approach to use for different network types |
| Bandwidth Requirements | Network impact of discovery scans |
| Running Discovery Scripts | Viewing and executing scripts from the admin interface |
Related Articles
- Discovering a Network — the user-facing discovery workflow
- Editing Discovery Scripts — customising what data is collected
- The PCAnalyser Folder — understanding the file share