Shipbuilding apps are monolithic, combining a user interface of some sort with something like a spreadsheet. In fact, a fast and easy way to build a shipbuilder app is to write a set of macros inside a spreadsheet.
Now take a step back and consider the program from a web-application point of view. In other words, the engine runs on a server, and a user interface communicates remotely with it, perhaps on a different machine entirely. Multiple UIs could talk with this engine -- a web application, or an iPad app, or an Android app, and so on.
The next layer: each service provided by the builder, including the UI, run in separate services running on a network. There's a controlling facade, a registration process, a heartbeat, or some set of organizational principles at work, so that the UI can use all of the active services.
Now take a step back and consider the program from a web-application point of view. In other words, the engine runs on a server, and a user interface communicates remotely with it, perhaps on a different machine entirely. Multiple UIs could talk with this engine -- a web application, or an iPad app, or an Android app, and so on.
The next layer: each service provided by the builder, including the UI, run in separate services running on a network. There's a controlling facade, a registration process, a heartbeat, or some set of organizational principles at work, so that the UI can use all of the active services.