/*
 * $Id: Service.java,v 1.2 2005/10/10 12:34:52 rampil Exp $
 * Copyright (c) 2004 LOGICAL-PARADOX.ORG
 */
package org.logical_paradox.rss;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * DSRに登録可能なサービス
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public interface Service extends Remote {
	/**
	 * サービス名を返す
	 * @return サービス名
	 * @throws RemoteException サービス名取得時に失敗
	 */
	public String getName() throws RemoteException;
	/**
	 * 完全修飾サービス名を返す
	 * どのノードに登録されているかなども含まれる完全ユニークなサービス名を生成して返す
	 * @return 完全修飾サービス名
	 * @throws RemoteException サービス名取得時に失敗
	 */
	public String getFqsn() throws RemoteException;
	/**
	 * サービスを停止する
	 * RMIサーバーとして実装されている場合，unexportされる
	 * @param force true:強制停止 / false:安全に停止
	 * @throws RemoteException サービス停止に失敗
	 */
	public void shutdown(boolean force) throws RemoteException;
}
