  The Online Software, manager of the JUNO data acquisition (DAQ) system, is
composed of many distributed components working coordinately. It takes the
responsibility of configuring, processes management, controlling and
information sharing etc. The design of service-oriented architecture (SOA)
which represents the modern tendency in the distributed system makes the online
software lightweight, loosely coupled, reusable, modular, self-contained and
easy to be extended. All the services in the SOA distributed online software
system will send messages each to another directly without a traditional broker
in the middle, which means that services could operate harmoniously and
independently. ZeroMQ is chosen but not the only technical choice as the
low-level communication middle-ware because of its high performance and
convenient communication model while using Google Protocol Buffers as a
marshaling library to unify the pattern of message contents. Considering the
general requirement of JUNO, the concept of partition and segment are defined
to ensure multiple small-scaled DAQs could run simultaneous and easy to join or
leave. All running data except the raw physics events will be transmitted,
processed and recorded to the database. High availability (HA) is also taken
into account to solve the inevitable single point of failure (SPOF) in the
distribution system. This paper will introduce all the core services'
functionality and techniques in detail.
