Question

I am currently doing a school project in C# Where I have to create a system for handling cinema bookings and reservations.

My question is; Which software architecture would be the most beneficial for a system like that? I am thinking to do a client/server architecture with a thin client, to help maintain concurrency and make sure that all connected clients have access to the same data at all times.

But then I went ahead and read about Service Oriented Architecture, and I don't quite understand what that implies. Also, most of the literature I've read so far, gives me the impression that you have to make the choice between a layered architecture and a client server architecture. I don't understand why those two can't be implemented simultaneously?

Was it helpful?

Solution

SOA means you ill build your system in a manner it's composed by decoupled services (components) interacting one with another. In general it means you ill build a bunch of "sub systems".

Layered means you ill build your system in a manner each layer interacts with each other and they can be loosely or tight coupled. In general it means you ill build one system with 3-layers (UI, business and persistence).

They are not different types of the same abstraction, in fact they are different beast and you can mix both or even create a service as a layered application or a layer as a bunch of services or even some services as UI services and others as DB Access services and arrange they in a way very similar to a layer topology.

To help you with you homework, think about how much distributed ill be your system. It ill be a fancy home page with where anyone can see the movies schedule, choose a where to sit and buy or more a like a system used by the guy selling the tickets.

The first is a more appropriate SOA scenario while the second can be more easily handled by a 3 layers application.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top