I’ve often been asked this question from people who are new to Hyperion. To best understand the reason behind the specific sequence in which the Hyperion services are started we must understand the architecture of the product suite.
We must first understand that Hyperion is not an application, rather is a suite of applications based on SOA architecture. Discussion of SOA is out of scope of this post.
Hyperion is basically a collection of applications that communicate with each other via the Shared Services (aka Foundation Services). This is exactly the reason why Shared Services needs to be started before any other service. Shared Services uses OpenLDAP for user management so basically that service needs to be started as well.
Each component is basically dependent on other components (for e.g. the essbase administration services and essbase provider services need to have essbase running otherwise their function becomes pointless) and hence these dependencies should be taken into consideration. Following a proper startup sequence ensures that all dependencies are taken into consideration and each component is initialized having made sure that it’s dependencies have already been started.