메뉴 건너뛰기

넷서버 제품군

NetServer v4의 개선사항

admin 2008.01.19 08:45 조회 수 : 3067

Netserver v4

Netserver v4

2007.1.26

 

넷서버 v4는 내부적으로 구조상 변경이 이루어 졌습니다. 하지만 하위 호환성을 위하여 기존의 클라이언트나 서버 프로그램과 병행해서 사용이 가능합니다.

v4의 가장 큰 특징은 서버에서 더 이상 사용자 목록에 대한 락이 필요없습니다. 실제로는 락을 거는 작업이 이제는 불가능합니다.

내부적으로도 락의 사용시간과 빈도를 최소화하여 서버의 안정성을 더욱 제고하였습니다.

변경된 메소드나 클래스에 대한 설명은 도움말을 참조바랍니다.

 

(new in v4)

procedure TNetServer.GetSnapShot(aList: TnsUserList; aIncludeSublink:

    boolean = false);

기존의 ConnectionList와 FreeConnectionList를 대체합니다.

 

(new in v4)

function TNetServer.FindUserByHashCode(aCode: integer; asobj: boolean =

    false): TObject;

서버의 각 클라이언트의 고유의 hashcode에 의하여 특정 사용자를 검색합니다. 각 클라이언트가 동일한 로그인과 암호를 사용하는 경우 특정 사용자를 알 수 있는 대체 수단이 될 수 있습니다.

TRequest.ClientHash나 TnsUser.Hashcode는 동일한 정수값을 가집니다.

asobj는 검색한 사용자를 참조에 안전한 TnsUserConnect로 되돌리고 아니면 TnsUser를 되돌립니다.

 

(new in v4)

 function TNetserver.FindUserObject(aID: string; aCaller: TnsUser = nil; aIncludeSub: boolean =

        false): TnsUserConnect;

FindUser와 동일하지만 참조에 안전한 TnsUSerConnect로 반환합니다. 생성된 객체는 호출한 쪽에서 해제할 책임이 있습니다.

 

(Removed in v4)

Tnetserver.ConnectionList

Tnetserver.FreeConnectionList

GetSnapShotList로 대체되었습니다.

 

(Removed in v4)

TNetserver.BroadcastThreadMsg

자신의 스레드를 생성하여 스냅샷을 사용하여 전송하면 대체가 가능합니다.

 

(new in v4)

 TnsUserList class

 

새로운 사용자 목록관리기능입니다. 이 클래스는 GetSnapShot을 사용하여 특정시점의 사용자목록의 이미지를 가져오는 경우에도 사용되지만 사용자그룹을 관리하는 용도로도 사용할 수 있습니다. 참조문제가 해결되어 동시에 2이상의 그룹에 속하더라도 사용자가 제거될때 일일이 제거해 주지 않아도 됩니다.

 

(new in v4)

TnsUserConnect class

 

TnsUserList는 특정 사용자의 그룹을 참조하는데 반하여 이 클래스는 개별 사용자의 참조문제를 해결합니다.

예를 들어 1..100 번사용자가 사용도중 101번사용자의 참조를 가지려고 할때 TnsUser의 참조를 가지면 넷서버내부에서 2번 사용자가 연결이 중단되는 경우 자신을 참조한 곳을 찾아서 일일이 제거해 주어야 하지만 이 클래스를 참조로 가지면 해당 작업이 필요가 없습니다.

 

TnsUserConnect.User로 기존의 TnsUser관련 메소드나 속성을 사용할 수 있습니다.

 

(new in v4)

공유연결 (Shared Connection)

 

공유연결은 특정 어플의 연결을 다른 어플에서 사용하는 기능을 지원합니다. 서버의 입장에서 보면 한 개의 연결이지만 클라이언트는 여러개의 어플이 하나의 연결을 공유하여 사용할 수 있습니다.

 

(new in v4)

TNetserverWebBroker

IIS나 아파치같은 웹서버상에서 델파이로 제작된 cgi나 isapi를 만들어 서버 역할을 할 수 있는 컴포넌트입니다.

같이 제공되는 TClientSynaHttp를 사용하여 연결이 가능합니다.

(new in v4)

TClientSynaHttp

Tnetserve

위로