[테마특강] 글로벌 컴퓨팅(Global Computing)

김흥환(金興煥)

85년 서울대 계산통계학과 졸업

87년 서울대 대학원 계산통계학과 석사

90년 서울대 대학원 계산통계학과 박사

96∼97년 콜로라도주립대 전산과 객원교수

90년∼현재 서원대학교 전자계산학과 교수

네트워크와 웹(World Wide Web)기술의 발전으로 사회는 예측하기 어려울 정도로 급속하게 변화하고 있다. 예전에는 자신과 자신이 속한 조직사회의 정보만을 사용할 수 있었지만 이제는 인터넷에 연동되어 있는 컴퓨터라면 어떠한 정보라도 얻을 수 있다. 심지어 지구상의 모든 컴퓨터와 관련된 자원을 자신의 작업을 처리하는 데 이용할 수 있는 환경으로 바뀌어가고 있다. 물론 각 조직사회별로 존재하는 방화벽(Firewall)이 허용하는 한도내에서 가능하지만 개념적으로 볼 때 지구상의 컴퓨터가 하나로 묶여진 거대한 컴퓨터로 볼 수 있는 것이다. 이러한 계산환경을 글로벌 컴퓨팅이라고 부른다.

글로벌 컴퓨팅 환경은 세계를 망라하여 가정에서부터 회사, 공장, 대학, 연구소, 병원, 금융기관, 공공기관에 이르기까지 유, 무선, 위성통신 등으로 연결된 망을 이용한 계산환경을 말한다. 여기에는 가전제품, 휴대전화, 이동단말기, 자동차, 개인용 컴퓨터, 워크스테이션, 중대형 컴퓨터, 슈퍼컴퓨터를 모두 포함하고 있다. 때문에 글로벌 컴퓨팅의 응용분야는 무궁무진하다고 할 수 있다.

개인용 컴퓨터는 현재 비교적 단순하고 기계적인 작업에 사용되고 있다. 하지만 글로벌 컴퓨팅 환경하에서 개인용 컴퓨터는 이보다 고단위의 지능 있는 작업을 할 수 있게 될 것이다. 다시 말해 개인용 컴퓨터는 매우 유능한 개인비서의 역할을 수행하게 되는 것이다.

홍길동씨는 어제 저녁에 생각해 낸 아이디어와 유사한 상품이나 혹은 연구가 있는 지 알고 싶었다. 그래서 인터넷을 통해 검색하기로 하고 웹 브라우저 검색란에 탐색 주요어(Keywords)를 입력, 탐색하기 시작했다. 탐색의 결과가 주제별, 상품별, 연구별, 나라별, 기관별, 연도별로 가지런하게 정돈이 되어 화면상에 나타난다. 이중 보다 자세하게 알고 싶은 관련 정보를 텍스트나 비디오, 영상으로 요구하고 나온 결과를 편집기로 보고서를 작성한다. 필요에 따라 관련 연구자와 영상토론도 한다. 또 앞으로 이 부분에 대한 국내외 동향을 알고 싶다는 점을 컴퓨터에 알려 놓는다. 컴퓨터는 주기적으로 혹은 상태의 변화에 따라 정보를 생생하게 유지시켜 준다. 그리고 이를 홍길동씨의 요구에 따라 매일 혹은 격주 단위로 요약하여 보고한다. 따라서 홍길동씨의 하루의 출발은 전자우편물과 보고를 읽고 분석하는 것으로 시작된다.

김둘리는 컴퓨터가 내는 경고음을 듣고 깨어났다. 컴퓨터는 김둘리가 원격강의인 「글로벌 컴퓨팅」과목을 10분 후 수강해야 한다고 말해 주었다. 강의는 미국 A대학의 B교수가 진행하는 강의였다. 둘리는 부랴부랴 준비를 마치고 컴퓨터로 강의를 들었다. 강의 도중 둘리는 의문점이 있어 이를 컴퓨터를 통해 질문하고 그 질문에 대한 대답을 교수와 다른 학생으로부터 들었다. 그리고 강의에 대한 복습을 위해 강의내용을 컴퓨터에 저장해 두는 것을 지시해 뒀다. 프로그램 숙제가 나왔는데 그 숙제는 자신의 컴퓨터로 수행하면 한 달 이상이 걸릴 과제였다. 그래서 둘리는 프로그램을 작성한 후 다른 컴퓨터에서 수행해야 할 부분들과 그 결과들을 취합하는 부분들을 표시해 이의 수행을 컴퓨터에 지시했다. 컴퓨터는 이 프로그램에 따라 다른 컴퓨터에서 수행할 부분을 컴퓨터 자원 브로커(Broker)에게 요청했다. 브로커는 웹상에 적절한 컴퓨터를 찾아 이를 수행하도록 하고 결과를 김둘리의 숙제 프로그램에 전달한다. 컴퓨터는 김둘리에게 1시간 후 숙제가 완료된 것과 김둘리의 어느 은행 계좌에서 프로그램 수행에 대한 비용이 지출되었음을 알린다.

이제 둘리는 한달 후 돌아올 여름방학 여행계획을 짜야겠다고 생각했다. 둘리는 웹 브라우저를 통해 여행의 주제와 경비, 그리고 일정을 주요어로 입력해 탐색하고 탐색 결과 나온 자료를 토대로 최적의 여행지와 일정을 결정했다. 보다 좋은 여행을 위해 여행사나 여행지에서 제공하는 GIS를 이용해 미리 가상여행을 해보고 여행계획을 정했다. 그리고 이동수단과 숙소, 여행일정 중의 이벤트에 대해 예약을 한다.

글로벌 컴퓨팅 환경의 요체는 지구상의 컴퓨터 자원과 정보를 모두가 공유할 수 있는 환경이라는 것이다. 이러한 글로벌 컴퓨팅 환경을 조성하기 위해서는 무엇보다도 글로벌 정보 인프라(GII:Global Information Infrastructure)의 구축이 필요하다. GII는 응용분야, 서비스, 그리고 인터페이스라는 세 개의 축으로 구성된다. 응용분야는 글로벌 컴퓨팅의 응용분야를 의미한다. 제조, 교육, 의료, 금융, 오락, 안보, 사업 등이 여기에 포함된다. 서비스는 여러 응용분야에서 필요로 하는 주요 서비스(Key Services)와 이를 지원하기 위한 지원 서비스(Supporting Services)로 나눌 수 있다. 주요 서비스로는 전자회의, 원격진료, 원격교육 등과 같이 상호협력(Collaborating)을 요하는 응용분야를 위한 서비스, 각종 서류나 전자화폐의 교환과 같이 다양한 형태의 상행위(Commercial Transaction)에 필요한 서비스, 전자책이나 전자음악, 전자필름, 전자도서관과 같은 전자출판(Electronic Publishing)을 위한 서비스, 컴퓨터와 연결된 각종 기계나 장비의 제어(Monitoring)에 필요한 서비스, 실제의 시스템 혹은 가상시스템을 설계하고 실험하는 데 필요한 서비스 등을 들 수 있다. 지원 서비스로는 멀티미디어 자료를 조작하는 데 필요한 서비스, 안정성과 보안을 유지하는 데 필요한 서비스, 다른 형식을 갖는 자료를 교환하는 데 필요한 서비스, 용이한 정보 획득을 위해 필요한 디렉터리 서비스(Directory Service) 등을 들 수 있다.

인터페이스는 응용 프로그램과 프로그램이 운영될 시스템간 인터페이스(API:Application Program Interface), 통신 서비스 인터페이스, 사용자 인터페이스, 정보시스템 인터페이스, 응용 프로그램간 제공되는 서비스를 위한 인터페이스, 상이한 네트워크간 인터페이스 등을 들 수 있다.

이들 세 축이 (3차원 공간에서) 교차하는 점은 해당 서비스를 특정의 응용문제와 인터페이스에 적용하는 것을 나타내며, 이에 대한 표준화가 필요하다. 예컨대 상호협력 서비스와 (원격)교육, 그리고 사용자 인터페이스 기술이 만나는 점은 원격교육과 같이 상호협력을 요하는 응용문제에 대해 상호협력 서비스를 특정 사용자 인터페이스(GUI, 키보드, 마우스 등)를 통해 제공하는 것을 나타낸다. 따라서 원격교육을 위해 어떠한 형태의 상호협력 서비스가 제공되어야 하는 지에 대한 표준화가 필요하다. GII는 이러한 표준화가 전세계적으로 이루어져야 할 것을 요구하기 때문에 다른 언어, 상이한 문화, 다른 제도를 갖는 국가간의 공정한 협상이 전제가 되어야 한다.

그러나 선진국과 개도국 간에는 기술과 경제력에 있어 차이가 많이 있다. 따라서 선진국은 자신들의 주도하에 글로벌 정보화 시장이 형성되길 원할 것이고, 자신들이 정한 표준화를 개도국들이 따라줄 것을 강력하게 요구할 것이 확실하다. 그런 만큼 개도국은 글로벌 정보사회의 속성상 사회 전분야에서 선진국의 예속을 피하기 어려울 것이다. 따라서 정부 차원에서 이를 주관할 부서나 기관을 설립하여 관련 기업과 연구진을 독려하고 선진국의 표준화 작업에 능동적으로 참여할 수 있도록 해야 한다. 또 GII의 세 개 축에 대한 기술을 적극적으로 개발해 지구촌 정보화 시대에 능동적으로 대비해야 할 것이다.

중요한 것은 글로벌 컴퓨팅 환경에서 응용문제들과 서비스를 효과적으로 표현해 줄 수 있는 언어시스템(Language System)의 개발이 필요하다는 것이다. 여기에서는 웹 기술에 기초한 글로벌 컴퓨팅 환경에 적합한 언어시스템의 요건에 대해 간략하게 논의한다. 우선 웹상에서 교환되는 다양한 형태의 자료에 대해서는 (완전하지는 않지만) 인정된 형태가 있다. 기본 자료구조인 이미지, 사운드, 비디오와 복합자료 구조(HTML문서, 테이블 등)에 대해 정해진 형태가 있다.

그러나 이동할 코드에 대해서는 인정된 형태가 없는 실정이다. 물론 자바(Java)의 경우 바이트코드(Bytecode)가 있고 이미 널리 사용되고 있지만 그것은 단순히 코드를 이동한 것이지 계산의 상태까지 포함한 이동으로는 볼 수 없는 문제점이 있다. 계산 혹은 코드를 하나의 독립된 형태의 객체로 보는 이동성 코드에 관한 연구는 근래 들어 실제적으로 연구, 개발이 진행되고 있다. 때문에 아직까지 정확한 체계가 정립되지 않은 실정이다. 현재 사용되는 언어 중 계산 혹은 코드의 이동성을 고려한 언어로는 오블릭(Obliq), 텔레스크립트(Telescript), 자바(Java)를 들 수 있다.

또한 이동성 계산이 글로벌 컴퓨팅 환경하에서 다른 서비스와 효과적으로 결합되어 사용되려면 이동성 코드 객체에 대해 URL과 같이 전체적으로 단일한 명칭이 주어져야 하고, 그것의 원본과 복사본에 대한 관리가 필요하다. 그리고 이동된 코드를 수행하기 위해 JIT(Justintime)기법이나 실행시간 연결 기법의 지원이 필요하다.

둘째, 이동성 코드의 경우 다른 컴퓨터 환경에서 수행되는 만큼 보안과 신뢰성이 강화돼야 한다. 이 점에서 자바의 보안과 신뢰성에 대해서는 설계 단계에서부터 주목할 필요가 있다. 셋째, 웹상에서 수행되는 서비스의 스케줄링, 오류나 예외 처리, 병렬성의 표현이 가능해야 한다. 넷째, 정확한 코드의 작성이 용이해야 한다. 이는 언어의 의미론상 불필요하게 복잡한 구분이나 기법이 배제되고 정확성의 증명이나 시험이 용이한 의미론 체계를 가져야 함을 말한다.

아직 이같은 조건을 모두 만족하는 언어는 없지만 앞으로 이러한 점을 고려한 언어가 기존의 언어를 확장하거나 아니면 새로운 언어로 나타날 지도 모른다. 그러나 이제까지의 프로그래밍 언어의 역사를 볼 때 널리 사용되는 기존의 언어가 확장되어 사용되는 쪽이 우세했다는 점을 무시할 수 없다. 때문에 자바 언어의 발전을 주시할 필요가 있다.

미래의 사회는 글로벌 컴퓨팅에 기초한 글로벌 정보사회가 될 것이라는 점을 부인할 사람은 별로 없을 것이다. 글로벌 컴퓨팅은 조직과 국가 간의 장벽을 없애고 사회의 변화를 요구하고 있다.

앞서 지적한 바와 같이 글로벌 컴퓨팅의 응용분야와 시장은 무궁무진하고 우리가 해야 할 일 또한 매우 많다. 그러나 무엇보다도 잊지 말아야 할 것은 글로벌 정보사회에 대한 준비를 적극적으로 하지 않으면 사회 전분야에서 선진국의 예속화를 피할 수 없다는 점이다.


브랜드 뉴스룸