ASP.NET+웹 서비스로 소프트웨어 공유 실현
저자:Eve Cole
업데이트 시간:2009-06-30 15:39:48
Abstract 본 논문에서는 소프트웨어 기능 공유를 통한 새로운 소프트웨어 공유 방법을 제안한다. 이 방법의 장점은 소프트웨어를 클라이언트에 복사하지 않고도 웹 서비스의 원격 호출 형태로 소프트웨어 기능을 공유할 수 있다는 점이다. 네트워크의 일부 리소스 중복성은 기존 웹 서비스를 공유하고 새로운 시스템을 통합하는 데도 도움이 됩니다. 또한 이 기사에서는 학생 신원 확인 모듈의 예를 통해 이 새로운 방법의 효율성을 분석합니다.
소개
전통적인 소프트웨어 공유는 소프트웨어 공유를 실현하기 위해 네트워크 서버에서 클라이언트로 소프트웨어를 복사하는 것입니다. 이 방법의 단점은 소프트웨어를 사용해야 하는 모든 클라이언트가 먼저 소프트웨어를 복사해야 하므로 네트워크의 공간 중복이 발생한다는 것입니다. 이로 인해 많은 양의 분리된 데이터와 중복된 비즈니스 논리가 발생합니다.
웹 서비스는 XML 메시징을 사용하여 데이터 교환 및 애플리케이션 로직의 원격 호출을 가능하게 하고, 데이터가 방화벽을 통과하도록 하고, 이기종 시스템 간에 데이터를 이동함으로써 데이터 및 시스템 상호 운용성을 달성하기 위한 실행 가능한 솔루션을 제공합니다.
본 논문에서는 기존 소프트웨어 공유 문제를 해결하기 위해 소프트웨어 기능 공유를 통한 새로운 소프트웨어 공유 방법을 제안한다. 이 방법의 장점은 소프트웨어를 클라이언트에 복사하지 않고 웹 서비스를 원격 호출하는 형태로 이루어진다는 점이다. 또한 네트워크의 일부 리소스 중복성을 줄이고 기존 웹 서비스를 공유하고 새로운 시스템을 통합하는 데에도 도움이 됩니다. 또한 이 기사에서는 학생 신원 확인 모듈의 예를 통해 이 새로운 방법의 효율성을 분석합니다.
소프트웨어 공유의 의미
컴퓨터 응용이 대중화되고 발전함에 따라 실용적인 컴퓨터 소프트웨어가 개발되어 기업이나 부서 등 소규모의 다양한 산업 분야에 적용되고 있습니다. 이러한 소프트웨어는 회사의 업무 효율성과 현대적인 관리 수준을 크게 향상시켰으며 회사의 비즈니스 운영 및 관리의 핵심이 되었습니다. 그러나 대부분의 회사의 거의 모든 부서에서 맞춤형 소프트웨어를 광범위하게 채택함으로써 유용하지만 사일로화되고 반복적인 비즈니스 논리 덩어리가 많이 생겼습니다. 설계 및 개발 과정에서 설계 중복을 피할 수 있고 소프트웨어 기능 공유를 사용하여 각 모듈의 동일한 기능을 달성한다면 소프트웨어 개발 비용을 크게 절감하고 향후 시스템 업그레이드 및 통합을 위한 좋은 아키텍처 기반을 제공할 수 있습니다. 또한, 약간의 개선을 통해 기존 비즈니스 로직을 다른 애플리케이션과 공유할 수 있으므로 개발 비용이 절감됩니다.
각 애플리케이션이 개발되는 환경은 다양하고 기술은 끊임없이 발전하기 때문에 과거에는 기존 애플리케이션을 공유하여 기능 세트를 만드는 것이 어려웠습니다. 다행스럽게도 웹 서비스 기술의 출현으로 소프트웨어 기능의 웹 서비스는 인터넷 내에서 공유할 수 있는 비즈니스 로직을 제공하고 궁극적으로 다양한 웹 서비스 기능 구성 요소 시스템을 기반으로 개방성을 형성하게 되었습니다. 다음으로 소프트웨어 공유를 실현하기 위해 웹 서비스 기술을 사용하는 방법에 대해 논의하겠습니다.
웹 서비스 기술 기반의 소프트웨어 공유
1. 웹 서비스 기술 소개
웹 서비스는 인터넷에 배포된 API로 간주할 수 있으며, 이는 쉽게 통합되고 애플리케이션 및 다른 웹 서비스에 의해 호출되어 새로운 애플리케이션 서비스를 형성할 수 있습니다. 완전한 캡슐화, 느슨한 결합 및 높은 통합 기능을 갖추고 있습니다. 웹 서비스 기술이 "서비스로서의 소프트웨어"를 구현하는 차세대 웹의 주류 기술이 될 것이라는 데는 의심의 여지가 없습니다.
웹 서비스 아키텍처는 다음과 같으며 서비스 요청자, 서비스 에이전트 및 서비스 공급자로 구성됩니다.
웹 서비스 공급자는 서비스 에이전트에 등록하여 서비스를 구성하고 게시하며 다른 서비스 및 사용자에게 자신의 기능을 제공하기 위해 인내심을 갖고 기다립니다. 는 조회 작업을 사용하여 서비스 브로커에서 서비스 설명을 검색한 다음 서비스 공급자에 바인딩하고 웹 서비스를 호출하거나 상호 작용합니다.
웹 서비스 공급자는 웹 서비스 요청자를 적절한 웹 서비스 공급자(일반적으로 UDDI)와 연결하는 중개자와 동일하며 서비스 요청자를 위해 웹 서비스를 동적으로 찾는 메커니즘을 제공합니다.
2. 웹 서비스 기반의 소프트웨어 공유 구현
소프트웨어 개발 과정에서 사람들은 모듈 기능의 재구성, 재사용, 수정 및 업그레이드를 용이하게 하기 위해 소프트웨어를 기능에 따라 서로 다른 모듈로 나누는 경우가 많습니다. 웹 서비스 기술을 통해 소프트웨어 공유를 실현하려면 먼저 통합 시스템을 기능에 따라 모듈로 나누고, 웹 서비스에 액세스할 수 있도록 이러한 기능 모듈을 구현하는 웹 서비스를 만드는 것도 필요합니다. 서비스 설명(웹 서비스 배포)을 통해 다른 모듈을 찾아 호출할 수 있습니다. 이러한 방식으로 웹 서비스로 구현된 소프트웨어 기능은 애플리케이션은 물론 다른 웹 서비스에서도 공유될 수 있습니다.
애플리케이션이나 기타 웹 서비스와 같은 서비스 요청자가 웹 서비스를 호출해야 하는 경우 먼저 서비스 등록 센터에서 서비스 설명을 검색하거나 필요한 서비스 유형을 쿼리합니다. 필요한 서비스가 발견되면 서비스 설명을 사용하여 서비스 공급자에 바인딩하고 해당 서비스를 호출할 수 있습니다.
Microsoft가 새롭게 출시한 주력 제품인 Visual Studio.NET은 웹 서비스 개발에 선호되는 도구로 알려져 있습니다. Visual Studio.NET을 사용하면 웹 서비스를 쉽게 생성하고 호출할 수 있습니다. 아래에서는 웹 서비스 기술을 기반으로 한 소프트웨어 공유의 구체적인 예를 제시합니다.
3. 소프트웨어 공유의 적용 사례: 학생 신원 확인 모듈의 공유 구현.
현재 대학에는 과목 선택 시스템, 성적 조회 시스템, 온라인 과목 시스템, 도서관 시스템, 학생 금융 시스템 등과 같은 많은 소프트웨어 시스템이 있습니다. 각 시스템은 서로 독립적이기 때문에 각 시스템에는 학생 신원 확인 모듈이 있어 설계의 기능적 중복이 발생합니다. 또한 각 시스템은 서로 독립적이며 학생들은 서로 다른 시스템의 비밀번호를 기억해야 합니다.
위의 상황과 현재 고도로 발전된 캠퍼스 네트워크를 고려하여 우리는 웹 서비스를 완전히 사용하여 학생 신원 확인 모듈의 공유를 실현할 수 있습니다. 다음은 Visual Studio.NET 환경을 이용하여 C# 언어를 이용한 학생 신원인증 웹서비스를 생성하고 호출하는 과정을 소개한다.
1) 웹 서비스 생성
학생 신원 인증 모듈은 1개의 웹 서비스로 구성됩니다.
공개 부울 ValidUser(문자열 userID,문자열 비밀번호)
웹 서비스 ValidUser는 학생 신원을 확인하는 데 사용됩니다. 기본 학생 정보 테이블 Student가 SQL Server 데이터베이스 StudentsInfo에 생성되었으며, 여기서 UserID 및 Pwd 필드에는 각각 학생의 사용자 코드와 비밀번호가 저장됩니다.
다음은 웹 서비스 생성 과정을 자세히 소개합니다.
a Visual Studio.NET 개발 환경을 실행하고 새로운 "ASP.NET 웹 서비스" 유형 프로젝트 WSStudentLogin을 생성합니다.
b 웹 서비스의 특정 코드 구현.
System.Data.SqlClient 사용;
//코드 생략...
공용 클래스 Service1 : System.Web.Services.WebService
{
문자열 ConStr="";
ConnStr="DATABASE=StudentsInfo;SERVER=10.1.111.19;UID=sa;PWD=;";
//코드 생략...
[웹방법]
공개 부울 ValidUser(문자열 userID,문자열 비밀번호)
{
부울 플래그=false;
문자열 sqlStr="";
//데이터베이스 연결 객체 생성
SqlConnection tempConn=new SqlConnection(ConnStr);
sqlStr="ID='"+userID+"' 및 pwd='"+Pwd+"';"인 학생에게서 *를 선택하세요.
//커맨드 객체 생성
SqlCommand tempComm=new SqlCommand(sqlStr,tempConn);
tempConn.Open();
SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection);
if(tempReader.HasRows) 플래그=true;
tempReader.Close();
tempComm.Dispose();
반환 플래그;
}
}
[WebMethod]로 기술된 메소드들만이 원격으로 호출될 수 있는 웹 서비스라는 점에 유의해야 한다. 따라서 메소드 앞의 [WebMethod]는 생략할 수 없습니다.
웹 서비스를 다른 사람이 사용할 수 있도록 하려면 지원하려는 클라이언트가 액세스할 수 있는 웹 서버에 배포해야 합니다. 개발 서버가 아닌 다른 서버에 웹 서비스를 배포하려면 웹 설치 프로젝트를 추가하거나 필요한 파일을 대상 서버에 복사하면 됩니다. 공간 제한으로 인해 이 기사에서는 이에 대해 자세히 설명하지 않습니다. 이 예제의 웹 서비스는 개발 서버에 배포되는 것으로 가정합니다.
웹 서비스를 생성하고 배포한 후 클라이언트에서 해당 웹 서비스를 호출할 수 있습니다. 다음은 클라이언트에서 웹 서비스 기능을 찾고 참조하는 방법에 대해 설명합니다.
2) 웹 서비스 호출
웹 서비스를 사용하는 프로세스는 실제로 웹 서비스 사용자를 웹 서비스에 바인딩하고 해당 메서드를 호출하는 프로세스입니다. 바인딩 프로세스를 단순화합니다. Visual Studio.NET은 서비스 프록시 클래스의 메서드를 제공합니다. 서비스 프록시 클래스는 웹 서비스 설명 문서(XXX.WSDL)를 기반으로 로컬 클래스를 생성합니다. 실행 프로세스 중에 클라이언트는 프록시 클래스의 정보를 사용하여 웹 서비스에 액세스하고 실제 메서드 호출을 구현합니다. Visual Studio.NET은 이 프로세스를 수행하는 간단한 방법을 제공합니다.
a 웹 서비스 액세스 클라이언트 프로그램을 생성합니다.
웹 서비스 액세스 클라이언트 프로그램은 다양한 유형의 애플리케이션 또는 기타 웹 서비스일 수 있습니다. 여기서는 "ASP.NET WEB Application" 유형의 새 프로젝트 WebApplication2를 만듭니다.
B. 서비스 참조.
먼저 프로젝트 메뉴에서 웹 참조 추가를 클릭하세요. 다음으로, 이 예제의 웹 서비스는 로컬 컴퓨터에 있으므로 브라우저 창에서 "로컬 컴퓨터의 웹 서비스" 링크를 클릭합니다. 그런 다음 제공된 목록에서 Service1 링크를 클릭하여 웹 서비스에 대한 정보를 검색하십시오. 그런 다음 참조 추가를 클릭하여 대상 웹 서비스에 웹 참조를 추가합니다. Visual Studio.NET은 서비스 설명을 다운로드하고 응용 프로그램과 웹 서비스 간의 인터페이스 역할을 하는 프록시 클래스를 생성합니다.
c. 클라이언트 프로그램에서 웹 서비스를 호출하기 위한 특정 코드 예제입니다.
개인 무효 Button1_Click(개체 전송자, System.EventArgs e) { //프록시 클래스 객체 생성 localhost.Service1 ClientProxy=new localhost.Service1(); 노력하다 {//코드 클래스 객체를 통해 웹 서비스에 액세스 if (ClientProxy.ValidUser(TxtUserId.Text,txtPwd.Text)) Label1.Text="확인"; 또 다른 Label1.Text="오류" ; } 잡기(e) {e를 던져;} 마지막으로 {ClientProxy.Dispose();} } |
다른
웹 서비스 기술은 기존 정보 시스템을 기반으로 소프트웨어 공유 및 시스템 통합을 실현하기 위한 좋은 기술 기반을 제공합니다. 그러나 웹서비스 기술을 기반으로 한 소프트웨어 공유를 실용화하는 것이 필요하다. 또한 첫째, 보안 및 신뢰성, 첫째, 웹 서비스 네트워크 전송의 연결 신뢰성, 둘째, 웹 서비스 콘텐츠의 신뢰성, 즉 데이터 무결성 및 기밀성 보장이라는 문제를 해결해야 합니다. 두 번째는 서비스 이용 권한에 대한 통제입니다. 웹 서비스는 "서비스로서의 소프트웨어"를 구현한 것입니다. 누가 이 서비스를 이용할 수 있는지, 누가 이 서비스를 이용할 수 있는지, 이 서비스 이용에 대한 요금을 부과하는 방법 등이 있습니다. 모두 실제 사용 문제에서 해결되어야 합니다. 또한, 웹 서비스의 수용 능력, 웹 서비스의 배포 및 발견, 고객의 웹 서비스 호출 실패 처리 등의 문제도 해결해야 할 문제입니다.
요약
본 논문은 소프트웨어 기능 공유의 관점에서 소프트웨어 공유의 실현을 제안하고, 원격 소프트웨어 기능 공유를 실현하기 위한 웹 서비스 기술의 활용을 논의하며, 학생 주체 검증 모듈을 사용하여 소프트웨어 기능 공유의 효과와 장점을 분석합니다. 소프트웨어 기능 공유에 대한 연구는 분산컴퓨팅 구현에 있어 매우 중요한 의미를 가지며, 이에 대한 추가적인 연구가 필요하다.