Applications
An Application is the top-level container in Art2link ESB — it owns its artifacts, sees only its own messages, and is closely modelled on a BizTalk Application with one deliberate difference: nothing crosses Application boundaries.
An Application is the unit you build inside. Every artifact you define — every Port, Map, Schema, Variable, Authentication, Message type, Pipeline, and Activity Notification — belongs to exactly one Application, and the runtime treats each Application as a self-contained world.
The shape will be familiar if you have worked with BizTalk Server: an Application here plays roughly the same role its BizTalk namesake does, as the top-level grouping that holds the artifacts of an integration. The difference is what crosses the boundary, and the answer in Art2link ESB is “nothing” — see below.
A BizTalk Application groups schemas, maps, orchestrations, ports, and pipelines so they can be deployed and managed as one unit. An Art2link ESB Application groups its own equivalent set of artifacts for the same reason. Where the two diverge is at the boundary itself.
In BizTalk, artifacts in one Application are addressable from another — a schema can be referenced across applications, a message published by one application can be subscribed to by ports in another, and the message box is shared. In Art2link ESB, none of that happens. Two Applications running side by side do not see each other’s artifacts and do not see each other’s live messages or transactions. The bus a receive port publishes to is the bus its own Application’s send, loopback, and null ports subscribe to — no other Application sees it.
An Application has two identifiers. The Name is the human-readable label you see in the navigator and the breadcrumb — free-form text, chosen for readability. The Namespace is an identifier-style handle, similar in spirit to a C# namespace: it follows code-friendly naming rules (no spaces, no special characters) and is what the platform uses when an Application's resources need to be addressed from a context that requires a code-safe identifier.
The two are usually closely related — the Namespace is typically derived from the Name — but they are independent fields. Renaming the Application does not retroactively change its Namespace; the Namespace is the stable handle, the Name is the label.
| Field | Purpose |
|---|---|
| Name | The human-readable label. Free-form, displayed in the navigator, breadcrumbs, and lists. Can be edited to be clearer. |
| Namespace | The code-style identifier. No spaces, no special characters. Used as the addressable handle for the Application's resources from places where a code-safe identifier is required. |
Every artifact you define belongs to one Application. The Application’s menu surfaces these eight kinds of artifact, and the Application also owns the private bus the ports publish to and subscribe from:
| Artifact | Role |
|---|---|
| Activity Notifications | Per-application notification rules that fire on integration activity. Created and managed inside the Application. |
| Authentications | Connection details and credentials referenced by the Application’s ports. One Authentication type per Adapter type, encrypted at rest. |
| Message types | The message classifications the Application’s ports route on, plus their Promotions. |
| Ports | The receive, send, loopback, and null ports that move messages in, out, around, and away. |
| Maps | The transformations attached to ports — XSLT plus optional custom functions. |
| Variables | Application-scoped, dynamically-typed slots that pipelines, ports, and maps can read and write. |
| Pipelines | Named, ordered lists of pipeline components, attached to ports at receive or send time. |
| Schemas | The XSD or JSON Schema definitions associated with the Application’s message types. |
Each row above (except Activity Notifications, which is documented in-app today) has its own article in this documentation set — the Application is what holds them together.
The platform carries a Selected Application state. When you pick an Application from the navigator, every artifact screen — Activity Notifications, Authentications, Message types, Ports, Maps, Variables, Pipelines, Schemas — implicitly uses that Application as the working context. The behavior is the same on every artifact list, with no per-artifact variation.
Two consequences follow.
Creation forms. When a Selected Application is set and you click Create on an artifact list, the new-artifact form opens with that Application preemptively chosen — you fill in the rest of the fields and save. When no Application is selected, the form exposes an Application picker and you choose one before saving. The artifact ends up owned by whichever Application you picked, exactly the same either way.
Grid columns. When a Selected Application is set, the artifact list does not show an Application column — every row in the list belongs to the same Application, so the column would be redundant. When no Application is selected, the list spans every Application you have access to, and the Application column appears so each row stays self-describing.
Two Applications running on the same instance do not share anything. None of the artifacts above is visible from another Application — no schema, no map, no message type, no variable, no authentication, no pipeline, no port, no notification rule. Live messages and in-flight transactions are equally isolated: a message published to the bus by a receive port in Application A is invisible to every port in Application B, and vice versa.
This is the deliberate default. The reason it is worth calling out is that BizTalk operators arrive expecting cross-application addressability and shared message-box semantics; Art2link ESB does not provide either today.
That is the whole shape
One Application owns its eight kinds of artifact and its bus. Nothing crosses the boundary in either direction today — and when cross-application access ships, it will be explicit, scoped, and opt-in.