CSE/Software Design

[Software Design] Physical Architecture Layer Design

두번째헌신짝 2022. 12. 4. 21:23

대부분의 현대 시스템은 두 대 이상은 네트워크로 연결된 컴퓨터에 걸쳐 있다.

Physical architecture layer design은 다음과 같이 지정한다.

시스템이 컴퓨터에 어떻게 배포가 되는지, 사용하게 될 하드웨어나 소프트웨어가 무엇인지가 중요하다.

우리는 널리 사용되는 architecture, client-server architecture의 개념을 알게 된다.

 

 

Architectural Components소프트웨어 요소와 하드웨어 요소로 나뉜다.

소프트웨어적 요소에는 Data storage, Data access logic, Application logic, Presentation logic가 있다.

하드웨어적 요소에는 Clients(computers, handhelds, cell phones 등), Servers(mainframes, minis, micors, rack mounted), Networks to connect all computers(Dial-up, always-on, medium or high speed, leased lines)가 있다.

 

 

Server-Based Architetureserver가 생성 및 배포되는 기반이 되는 server의 기본 layout, model이다.

server design 방법, server가 생성하는 다양한 구성 요소 및 sever가 제공하는 서비스를 정의한다.

server는 네 가지의 소프트웨어적 요소 기능을 모두 수행한다.

client(일반적으로 디스플레이와 키보드가 있는 terminal)는 키 입력을 캡쳐하여 처리를 위해 서버로 보낸다.

server-based architecture

 

Client-Based Architectureapplication 전체가 client 내에서 지역화가 되는 경우다.

client는 네트워크 상의 개인 컴퓨터이다.

server가 동일한 네트워크에 있는 file server이다.

개발은 간단할지 몰라도, 빠르게 과부화된다.

모든 data가 처리를 위해 clinet에 다운로드된다.

network traffic이 과도해질 수 있다.

client의 컴퓨터 성능이 충분하지 않을 수도 있다.

client-based architecture

 

Client-Server Architecturedata의 관리가 server에서 수행되고 프레젠테이션이 client에서 수행되며 data 조작이 server와 client 간에 공유되는 경우다.

예를 들어, Microsoft Outlook은 사용자가 일부는 Microsoft의 Exchange Server에, 일부는 컴퓨터에 오프라인으로 여러 계정의 이메일을 저장할 수 있는 이메일 관리자 애플리케이션이다.

client와 server 간 처리의 균형을 조정한다.

이 architecture는 현대 시스템의 지배적인 구조이다.

client 처리량이 기준에 따라 다르다.

thin clients는 presentation logic만 수행하고, thick clients는 presentation과 application logic을 수행한다.

점진적인 비용으로 확장성이 뛰어난 부분이 있다.

clinet와 server 모두에 대해 application을 작성해야 하므로 더 복잡하다.

client-server architectures

 

Client-Server Tiers 는 논리 분할 방식에 따라 정의된다.

2-tier는 data storage and access를 담당하는 단일 서버, application 및 presentation logic을 담당하는 client로 구성되어있다.

3-tier는 한 서버에서는 data storage 및 access logic, 다른 서버에서는 application logic, presentation logic을 담당하는 client로 구성되어있다.

n-tier는 두 서버간에 application logic 분할, 다른 server의 data logic으로 구성되어있다.

architecture characteristics

 

Infrastructure Design 에 대한 이야기는 다음과 같다.

가능은 하지만, 처음부터 시작한 design은 거의 없다.

대부분의 design은 이미 설치된 system을 활용한다.

기존 infrastructure를 변경하거나 개선하고, 조정은 어렵지만, 요소에 대한 지식은 필수적이다.

 

Deployment Diagram 정보 시스템의 하드웨어 구성 요소 간의 관계를 나타낸다.

해당 Diagram의 요소는 다음과 같다

Nodes : 모든 하드웨어(예 : client computers, servers, networks or network devices)

Artifacts : node에 설치될 정보 시스템의 한 부분

Communication paths : node 간의 communication link

diagram syntax
extended node syntax
deployment diagrams의 예시
Sample Deployment Diagrams : Wikipedia

 

Hardware & Software Specifications

새 application에 필요한 hardware 및 software는 specifications document에 기록된다.

software requirements은 다음과 같다.

operating system(운영체제), special purpose softwrae(예 : DMBS), 필요한 교육, 유지보수, 보증 및 라이센스 계약이 포함된다.

 

 

Nonfunctional Requirements의 종류는 다양한데 다음과 같다.

 

* Operational

- Technical environment

- System integration

- Portability

- Maintainability

 

* Performance

- Speed

- Capacity

- Availability & reliability(가용성 & 신뢰성)

 

* Security

- System value

- Access control

- Encryption & authentication

- Virus control

 

* Cultural & political influence

- Centralized vs local control

- Language differences (keyboard requirements)

 

* Legal implications

- Laws & government regulations

- Global presence requires scrutiny of local laws (Global presence는 현지 법의 정밀 조사를 필요로 한다.)