언어 자료구조 알고리즘/프로그래밍 실습

[NCS 응용 SW엔지니어링] 애플리케이션 구현 - 서버 프로그램 구현

언제나휴일 2018. 4. 4. 09:13
반응형

[NCS 응용 SW엔지니어링] 애플리케이션 구현 - 서버 프로그램 구현



과정명

IoT기반 융합 SW 개발자 양성과정

과목명

애플리케이션 구현

(2001020203_14v2)

요소명

서버 프로그램 구현하기

수행일자

201804. 04

훈련생

 

 

수행과제

크롤링 웹 페이지 내에서 시멘틱 검색을 제공하는 닷넷 리모팅 서비스(서버) 프로그램을 개발하고 이를 테스트하는 클라이언트를 작성하시오.

*서비스로 제공할 형식, 서버 코드, 클라이언트 코드를 수행 결과에 명시하시오.

jejutour@daum.net 메일로 201846일까지 제출하시오.


과제를 통해 확인할 능력 사항

1. 프로그래밍 언어와 도구를 활용하여 서버 프로그램을 작성할 수 있다.

2. 클라이언트 프로그램에 종속도를 낮출 수 있게 서버 프로그램을 작성할 수 있다.

3. 개발한 서버 프로그램을 테스트하기 위한 테스트 케이스 작성 및 단위 테스트 조건을 명세할 수 있다.


수행결과



참고 파일

애플리케이션 구현 실습[서버 프로그램 구현하기].hwp

애플리케이션 구현 실습[서버 프로그램 구현하기]예.hwp


예:


수행결과

서비스로 제공할 형식

namespace GenericSearchLib

{

/// <summary>

///검색 서비스를 제공하는 Generic 클래스

/// </summary>

public class GenericSearch:MarshalByRefObject

{

/// <summary>

/// 검색 요청 메서드

/// </summary>

/// <param name="query">검색 질의</param>

/// <returns>검색 결과(순위화 한 페이지 목록)</returns>

public ArrayList Request(string query)

{

Assembly asm = Assembly.Load("RankerLib");

Type type = asm.GetType("RankerLib.Ranker");

MethodInfo mi = type.GetMethod("Request");

object[] objs = new object[1]{query};

List<RankedUrl> rlist = mi.Invoke(null, objs) as List<RankedUrl>;

ArrayList ar = new ArrayList(rlist);

return ar;

}

}

}

서버 프로그램 코드

protected override void OnStart(string[] args)

{

HttpChannel hc = new HttpChannel(10200);

ChannelServices.RegisterChannel(hc, false);

RemotingConfiguration.RegisterWellKnownServiceType(

typeof(GenericSearch),

"EHSearchSVC",

WellKnownObjectMode.Singleton

);

}

클라이언트 프로그램 코드

static void Main(string[] args)

{

HttpChannel hc = new HttpChannel();

ChannelServices.RegisterChannel(hc,false);

GenericSearch svc = Activator.GetObject(

typeof(GenericSearch),

"http://[ 서버 IP 주소:10200/EHSearchSVC") as GenericSearch;

Console.WriteLine("검색 질의를 입력하세요.");

string query = Console.ReadLine();

ArrayList list = svc.Request(query);

foreach (RankedUrl rurl in list)

{

Console.WriteLine(rurl);

}

}


반응형