1980년 중반부터 CPU의 발전, 속도 좋은 컴퓨터 네트워크의 등장으로 분산 시스템이 등장하였다.
사용자에게는 하나의 시스템으로 보이지만, 그 안은 독립적인 컴퓨터이 목적을 위해 협력한다.
collection of independent computers that appears to its users as a single coherent system
좋은 분산시스템이라면, 사용자는 single system을 사용하는 것 처럼 느끼도록 하는 것이 포인트다.
(독립적인 == autonomous )
Q. 저 정의에 따르면 로드밸런서도 분산시스템인가 => YES, 여러 서버나 리소스를 분산시키니까
분산시스템은 가끔 소프트웨어 형태로 제공되는데, 이 때는 미들웨어 형태로 제공된다.
미들웨어 = os와 app 레이어 사이의 레이어로, 사실 app 레이어인데 app들이 미들웨어 위에서 작동하니까.
결국 Os가 달라도 미들웨어가 같으면 통신이 가능하다.
단점은 JVM과 비슷하게, 느리다는 것이다. (미들웨어 레이어가 하나 더 있는 것이니)
사용자에게 Easy하게 remote resource를 제공
Groupware(CSCW) : 협동 편집, 화상회의 처럼 그룹이 사용하는 소프트웨어 등장
그 만큼 Security 문제 대두
사용자가 편하게 사용하도록 속을 숨겨라.
여러 타입의 transparency가 있는데
무조건 완벽하게 숨긴다고 좋은게 아니라, 정도에 따라 장단점이 있음.
마치 브라우저에서 여러 웹 어플을 사용하는 것처럼, 요청하고 응답받을 때 표준을 정해놓으면 어떤 분산시스템을 이용할 때도 좋을 것이다.
IDL (Interface Definition Languague)를 통해, 클라이언트가 요청전에 분산시스템이 어떤 기능을 제공하는지 알 수 있다.
Interoperability : 동일한 기능을 제공하는 여러 분산 서비스가 있어도, 사용자가 관계없이 동일한 방법으로 사용이 가능할 때
Portability : 서비스를 다른 분산시스템으로 옮겼을 때도 사용자가 사용가능한 경우