You are on page 1of 14

Dynamic Architecture & Dynamic

Computer Programming
Reporter : Team8

合作 QQ : 243001978
01
Brief summarization of teacher’s opinion
Part 1 Dynamic Software Programming
 When we do programming, we first make software components, then draw
them together then all components integrated together become a system.
Then we use compiler to produce the binary code and after that run the
system. But dynamic programming is different it is drawing of a process
together not program together. It is because every component is intelligent
component. When we say intelligent component, it means behavior of the
component is intelligent.
 In the era of software defined and internet of everything, most of our activities in
software development will be dynamic software development or in other words,
dynamic (software) programming. The autonomous, uncertainty, dynamic,
evolution, user inclusive and intelligent nature of these components constitute
important features of dynamic programming. Moreover, the dynamic property of
the components makes the architecture of the system to be changed during the
runtime, resulting so-called dynamic architecture.
Part 1 Dynamic Software Programming

 In the dynamic programming the meaning of a system is “system is combination


of
an architecture and active components”. Active components can be processes,
services or any software defined things in running status, such as software defined
web services, mobile, PC, taxi, doctor etc. Obviously, an active component
consists of software, hardware, as well as the people behind it for operation and
maintenance.
 Although in most cases of dynamic programming, System = Dynamic Architecture
+ Active component, but it is not always necessarily to be dynamic to the
architecture; sometimes there are exceptions so we withdraw the term Dynamic
architecture and substitute it by Architecture. The System = Architecture + Active
component
Part 2 Dynamic Architecture
 Architecture is a high-level description about a system or high-level abstraction of
a system. And when we say abstraction, it means a small piece of text to describe
very complex things, we can assume it like summary. Abstracts may not include all
the information but they contain key information and key terms.
 Dynamic means sometimes it is here and sometimes it disappear. And dynamic
architecture means something that changes dynamically. During the development it
might change somehow, but during running time normally it will not be changed.
Dynamic architecture is unpredictable.
 Architecture is a high-level abstraction which is describes something very stable
not changed frequently or in the whole process may not be changed. But Dynamic
architecture is different, when we develop a system from the very early stage, we
develop architecture. Architecture describes the whole system not only some part.
Part 3 Microservice architecture
Our teacher agrees with the definition given by Martin Fowler and James Lewis in
2014, they defined it as small services composed of a single application with its
own processes and lightweight processing, which are designed according to
business functions, deployed in a fully automated manner, and communicate with
other service using HTTP APIs. At the same time the service will use a centralized
management (e.g., Docker) capability at minimal scale, and the service can be
implemented in different programming languages and components such as
databases.
Advantage of Microservices
• Microservices are easier to build and enhance
• Microservices are easier to deploy
• Microservices are easier to maintain, troubleshoot, and extend
• Microservices deliver performance and scale
• Microservices simplify real-time processing
02
Opinion of other scientists on related issues
Dynamic Software Architecture

 In 2004, In the paper “A survey of self-Management in Dynamic Software Architecture


Specification” Jeremy S.Bradbury and James R.Cordy defined a Dynamic Software
architecture as “Dynamic Software Architectures Modify their architecture and enact the
modification during the system’s execution. This behavior is most commonly known as run-
time evolution or dynamism”. And they discussed an interesting which is self-managing
architecture “Self-managing architectures are a specific type of dynamic software
architectures. We defined a system that enacts architectural changes at run-time as having
a self-managing architecture if the system not only implements the change internally but
also initiates, selects, and assesses the change itself without the assistance of an external
user. Programmed dynamism, self-organizing architectures, self-repairing systems, and self-
adaptive software are all examples of self-managing architectures”[1].
Microservice Architecture

 In 2018, in the paper “Resource scheduling optimization algorithm for containerized


microservice architecture in cloud computing” Peng Li, Jinquan Song, He Xu, Lu Dong and
Yang Zhou defined Microservice architecture as “Microservice (also known as microservice
architecture) and container technology has drawn more and more attention. Microservice
can be seen as a refinement and simplification of service-oriented architecture (SOA). It
advocates fine-grained module division, service-specific, independent deployment,
collaboration, and lightweight communication mechanisms, with HTTP/REST resource API.
Such services are established within business capabilities and with clear boundaries”[2].
Service-Oriented Architecture

 In 2007, in the paper “Service-oriented architecture and web 2.0” Jared T. Howerton defined
SOA as “SOA is a model for organizing and utilizing distributed capabilities that may be
under the control of different ownership domains. The basic concept behind SOA is to
provide a basic set of services that each application can access to provide this common
functionality. A SOA also results in increased standardization for the enterprise and to
implement base functionality, a higher degree of consistency will exist between applications.
The most common implementation for a company willing to move towards SOA is through
Web services. These services can be used to adapt almost any code to become a new Web
service and will enable technology that will move businesses forward and speed process
evolution”[3].
Reference

[1] J. S. Bradbury, J. R. Cordy, J. Dingel, and M. Wermelinger, “A survey of self-management in


dynamic software architecture specifications,” 2004. doi: 10.1145/1075405.1075411.
[2] P. Li, J. Song, H. Xu, L. Dong, and Y. Zhou, “Resource scheduling optimisation algorithm for
containerised microservice architecture in cloud computing,” International Journal of High
Performance Systems Architecture, vol. 8, no. 1–2, 2018, doi: 10.1504/IJHPSA.2018.094144.
[3] J. T. Howerton, “Service-oriented architecture and Web 2.0,” IT Professional, vol. 9, no. 3.
2007. doi: 10.1109/MITP.2007.54
03
Opinion of the team
 In recent times, we are facing new system types which cannot be captured by static architectures
with a fixed configuration any more. Instead, the architecture of such systems is subject to
constant changes triggered by certain states, events or user requests. Examples include “24/7”
systems that have to run 24 hours a day and, thus, require online updates, without shutting down
the entire system. So, we believe that, for this and for other reasons dynamic computer seem the
future of programming. As a new type of software architecture, Service- Oriented Architecture
(SOA) provides a blueprint to solve software reuse and enterprise system integration issues. Using
SOA and external web services, the issue can be resolved. It is playing major role in the
development of such system which helps to exchange the information between similar and
dissimilar applications.
Thank you for
listening

Q&A time

You might also like