Aim: To select architectural style for B.E. Project

Theory:

Architectural style / Description
Client/server / Segregates the system into two applications, where the client makes request to the server. In many cases, the server is a database with application logic represented as sorted procedures.
Component-Based / Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
Domain Driven / An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain.
Layered Architecture / Partitions the concerns of the application into stakes groups (layers).
Message Bus / An architectural style that prescribes use of software system that can receive and send messages using one or more communication channels, so that application can interact without needing to know specific details about each other.
N-Tier / 3-Tier / Segregates functionality into separate segments in much the same way as the layers style, but with each segment being a tier located on a physically separate computer.
Object-Oriented / A design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behaviour relevant to the object.
Service-Oriented Architecture(SOA) / Refers to applications that expose and consume functionality as a service using contracts and messages.

Our project “Private cloud using Eucalyptus and Xen” uses component based architecture. There are 7 components viz. euca2ools, Walrus, Cloud controller, Cluster controller, Storage controller, Node controller, Virtual machine.

  1. The Cloud Controller (CLC) is a Java program that offers EC2-compatible interfaces, as well as a web interface to the outside world. In addition to handling incoming requests, the CLC acts as the administrative interface for cloud management and performs high-level resource scheduling and system accounting.
  2. Walrus, also written in Java, is the Eucalyptus equivalent to AWS Simple Storage Service (S3). Walrus offers persistent storage to all of the virtual machines in the Eucalyptus cloud and can be used as a simple HTTP put/get storage as a service solution.
  3. The Cluster Controller (CC) is written in C and acts as the front end for a cluster within a Eucalyptus cloud and communicates with the Storage Controller and Node Controller. It manages instance (i.e., virtual machines) execution and Service Level Agreements (SLAs) per cluster.
  4. The Storage Controller (SC) is written in Java and is the Eucalyptus equivalent to AWS EBS. It communicates with the Cluster Controller and Node Controller and manages Eucalyptus block volumes and snapshots to the instances within its specific cluster.
  5. The Node Controller (NC) is written in C and hosts the virtual machine instances and manages the virtual network endpoints.
  6. The Virtual Machine (VM) is nothing but instance i.e. a software implementation of a machine (i.e. a computer) that executes programs like a physical machine.
  7. Euca2ools are command line tools used to interact with Amazon WebServices (AWS) as well as other services that are compatible with AWS,such as Eucalyptus. They aim to use the same input as similar toolsprovided by AWS for each service individually along with severalenhancements that make them easier to use against both AWS andEucalyptus.

Conclusion:Hence we selected component-based architectural style for our B.E. project.