MPX Components
Like all client/server architectures, as the number of clients grows, the server could potentially become a bottleneck. In fact, the scalability of many client/server systems is entirely limited by this bottleneck. Other client/server systems address scalability by deploying multiple instances and replicating information between them to attain synchronization.
ActiveMQ MPX is a unique solution to client/server scalability. ActiveMQ MPX is a publish/subscribe messaging framework that pushes update events that contain metadata and data to clients. It is optional because it is not required for basic StarTeam functionality. However, when ActiveMQ MPX is activated, it improves StarTeam Server scalability and improves StarTeam client responsiveness.
Message Broker
Basic ActiveMQ MPX requires the addition of a single extra component, known as the MPX Message Broker. The MPX Message Broker’s role is illustrated below.
The MPX Message Broker is a messaging process that uses an event API to receive updates from the StarTeam Server process. The MPX Message Broker broadcasts encrypted messages containing updated artifacts. StarTeam clients subscribe to subjects and receive only messages relevant to them. By receiving updates as soon as they occur, StarTeam clients do not need to poll for updates or refresh information they have cached, significantly reducing the demand-per-client on the StarTeam Server. This improves server scalability, but it also improves client responsiveness since updates are received within seconds after they occur.
MPX Cache Agents
Messages broadcast by a MPX Message Broker benefit clients with active sessions. However, for files MPX offers an optional MPX Cache Agent process that manages its own persistent cache. MPX Cache Agents can be deployed at geographic locations, allowing clients to fetch file contents from the nearest MPX Cache Agent, preventing the need to fetch this content across a longer (and potentially slower) network connection. MPX MPX Cache Agents are illustrated below.
In this example, a Root MPX Cache Agent is deployed network-near to the StarTeam Server process. A Root MPX Cache Agent directly accesses the StarTeam vault, providing local clients with an alternate path to the vault for checking-out files. This reduces demand on the StarTeam Server, enhancing its scalability.
This example also shows a Remote Message Broker and a Remote MPX Cache Agent deployed at a remote site. Using broker-to-broker forwarding, each update event is forwarded once to the Remote Message Broker, which then broadcasts it to local clients. Files are streamed to the Remote MPX Cache Agent, which stores them in an encrypted private cache. StarTeam clients network-near to the Remote MPX Cache Agent can check out files at any time, leveraging the local high-speed network instead of pulling content across the WAN. This further reduces demand from the StarTeam Server while improving remote client responsiveness.
Other Options for Distributed Organizations
ActiveMQ MPX provides a unique solution for distributed teams. It leverages the benefits of a centralized server—lower total cost of ownership, better security, and simplified administration, while solving the traditional performance and scalability issues of client/server architectures. ActiveMQ MPX offers many advantages to distributed organizations:
- Any number of Message Brokers can be “chained” together (typically in a hub-and-spoke configuration) to form a “messaging cloud” that scales to any size organization. Message Broker limits can be configured to arbitrary values based on available resources such as file handles.
- Any number of MPX Cache Agents can be distributed globally. Clients can be configured to automatically locate and use the network-nearest MPX Cache Agent, or they can choose a specific MPX Cache Agent.
- MPX Cache Agents use push caching in which content is broadcast and stored by MPX Cache Agents as soon as it is created. This makes caches more effective than traditional “pull through” caching, in which every initial request results in a “cache miss”.
- MPX Cache Agents use advanced synchronization techniques that improve their effectiveness such as pre-charging, tiering, request forwarding, and automatic catch-up.