written 8.5 years ago by | • modified 8.5 years ago |
a) Software architecture and Deployment
b) Lightweight C2 framework
Mumbai University > Computer engineering > Sem 7 > Software Architecture.
Marks: 20 M
Year: May14, Dec12, May12
written 8.5 years ago by | • modified 8.5 years ago |
a) Software architecture and Deployment
b) Lightweight C2 framework
Mumbai University > Computer engineering > Sem 7 > Software Architecture.
Marks: 20 M
Year: May14, Dec12, May12
written 8.5 years ago by | • modified 8.5 years ago |
a)Software architecture and Deployment
Architecture is the primary focus of software engineering for the production of high-quality, cost-effective and successful products. Software architecture deals with the design and implementation of the high-level structure of software. A system is a set of hosts. Each host provides a set of resources needed by the system’s components like hardware, network, peripheral devices, system software and data resources. Deployment Architecture is allocation of software components to hardware hosts. Many deployment architectures are possible for a given system. They generally provide the same functionality but different quality of service. Deployment activities involve:
1. Release:
A software system’s release is the initial activity in the systems deployment process. It takes place on producer site after the system’s development has been completed. The system is packaged so that it can be transferred to the consumer sites.
The packaged system will typically contain the following:
2.Install:
Once the system has been packaged at the producer site and transferred to the consumer site, it is ready to be configured and installed for operation.
3. Activate:
Once the system is installed, it needs to be activated for use on the target hosts. Activation consist of providing a command, or sequence of commands that will be required to start up the system.
4. Deactivate:
It involves disabling or shutting down a system of any of the system’s facilities that are still active on the target hosts.
5. Update:
Once the system has been installed and activated on target hosts, it may need to be updated overtime for different reasons. The system may need to be deactivated before it is updated and thereafter re-activated. Updates are initiated by the system’s producers and involve the same activities as the original installation. It is critical that the update must be properly reflected in its architectural models. If it is not ensured, the architecture will degrade and any subsequent updates may result in system defect.
6. Adapt:
Adaptation encompasses a wide range of activities and results in dynamically changing the system in response to events in the system’s execution environment.
7. De-install:
If the system is no longer needed on the consumer sites, it is removed. The de-installation is done by simply reversing the steps taken during installation. It should be noted that, before the system is de-installed, it may need to be deactivated first.
8. De-release:
The producer of the given system may decide not to support the system or retire the system any longer i.e. the producer may decide to retire the system. This may be because of evolution of a superior version of that software or market size is too small or the producer has discontinued the product and gone out of business etc. The withdrawal of the producers support for the system is usually advertised. The system’s consumer can then decide whether they still want to use the system with the accompanying risk or de-install the system.
b)Lightweight C2 framework
The first C2 framework implemented in java is known as the lightweight C2 framework. It is implemented in only 16 classes, 3000 lines of code. To develop an application using this framework, developers create component and connector implementations as sub classes of the component or Connector abstract base classes. The component and connector classes communicate with each other using messages which are instances of Request and Notification classes. The developers then use the interface of the Architecture class to instantiate the components and connectors.
C2 components and connectors are implemented as java classes that extend abstract base classes provided by the framework. Messages are encoded with a string name and a string to object property map containing the message contents. Certain aspects like threading and message queuing depend on the choice of the individual components and connectors. Two threading policies are available to implementers:
Message queuing is handled through Port objects, which are capable of receiving incoming messages for a component or connector. The framework provides only one kind of port: a first-in-first-out queue(FIFO). Here, messages are received in the order they are received.
Some classes and relationships from the lightweight C2 framework are shown below
Features of Lightweight C2 framework:
1. Platform support:- Available with all Java implementations on many platforms
2. Fidelity:- Assists developers with many aspects of C2 but does not enforce these constraints Leaves threading and queuing policies up to individual elements
3. Matching assumptions:- Component/connector main classes must inherit from distinguished base classes All messages must be in dictionary form
4. Efficiency:- Lightweight framework; efficiency may depend on threading and queuing policy implemented by individual elements