(57)【要約】【課題】  JAVA Appletのようにサーバから中間コードをダウンロードし実行するプログラムは、逆コンパイルされる危険性がある。【解決手段】  オブジェクト指向プログラムにおけるオブジェクトをシリアライズ化しサーバに保存し、前記シリアライズ化したオブジェクトをサーバから端末に読込みデシリアライズ化する。【選択図】    図１
2008186134.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトを保持するサーバと端末を備え、
前記端末で動作するプログラム（以下端末プログラムと記述）がオブジェクトをサーバから読み込み、前記端末プログラムがサーバから読み込んだオブジェクトのメソッドを実行することを
特徴とするシステム。
【請求項２】
オブジェクトを保持するサーバと端末を備え、
前記端端末プログラムがオブジェクトをサーバから読み込み、前記端末プログラムがサーバから読み込んだオブジェクトのメソッドを実行することを
特徴とするシステム構成方法。
【請求項３】
オブジェクトをサーバから読込むステップと、前記オブジェクトのメソッドを実行するステップを備えることを
特徴とするコンピュータプログラム。
【請求項４】
オブジェクトを保持するサーバと端末を備え、
端末プログラムがオブジェクトをサーバから読み込み、前記端末プログラムがサーバから読み込んだオブジェクトのメソッドを実行するシステムを
提供する提供手段を含むサーバ。
【請求項５】
オブジェクトがデータベースに格納されていることを特徴とする
請求項１記載のシステム
【請求項６】
オブジェクトがデータベースに格納されていることを特徴とする
請求項２記載のシステム構成方法
【請求項７】
データベースに格納されたオブジェクトを読み出すステップを備えることを特徴とする
請求項３記載のコンピュータプログラム
【請求項８】
オブジェクトがデータベースに格納されていることを特徴とする
請求項４記載のサーバ
【請求項９】
サーバとクライアント間で暗号通信を行うことを特徴とする
請求項１記載のシステム
【請求項１０】
難読化したクラスから生成したオブジェクトを保持するサーバを備えることを特徴とする
請求項１記載のシステム
【請求項１１】
請求項３、７に記載のコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システムに関する。
【背景技術】
【０００２】
ＪＡＶＡ（登録商標）では、クラスと呼ばれる中間コードを実行する。このようなプログラム言語は、中間コードを逆コンパイルすることにより容易にソースプログラムが生成できる。そのため技術情報が流出しやすい。これを防ぐために中間コード難読化することもできるが、完全に防ぐことは困難である。そのため、貴重なノウハウが流出する可能性がある。また、逆コンパイルによるハッキングにより情報システムの安全性が脅かされる。難読化とは、中間コードの変数名やメソッド名を意味の無いものに変えたり、中間コード自体を暗号化し、解読を困難にするものである。
図２に示すように、ＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）のようなシステムは、サーバ  ３０から端末に中間コード（クラス）  ３２ａ〜３２ｃをダウンロードしハードディスク  ２７等に格納する。次に、前記クラス  ２８ａ〜２８ｃからオブジェクト  ２３ａ〜２３ｃを生成し、前記オブジェクトのメソッドを実行する。このようなシステムでは、ハードディスク等に格納した中間コード（クラス）を逆コンパイルすることによって簡単にソースコードを生成できる。また、ハードディスクに保存されたクラスが改ざんされる危険性もある。そのため、不特定の利用者が使うネットワークアプリケーションとしてＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）を使うことは大きな危険を伴う。
【０００３】
ＮＦＳのようなファイル共有システムを使い、サーバのプログラムファイルを端末で実行することは可能である。この場合、端末にプログラムは保存されない。しかし、プログラムファイルは共有されているため、端末にある逆コンパイルプログラムからも容易にアクセスでき逆コンパイルできる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
係る従来の実情に鑑みて、本発明の目的は、サーバから端末に読み込んだプログラム等をファイルとして端末に保存しないで、端末のプログラムからアクセスできるようにすることである。
【課題を解決するための手段】
【０００５】
上記の目的を達成するため、本発明の特徴は、オブジェクト指向プログラムにおけるオブジェクトをシリアライズしてサーバに保存しておく。そして、端末で動作するプログラムが前記シリアライズしたオブジェクトをサーバから読込み、デシリアライズしオブジェクトを復元することにある。シリアライズとは、実行環境にあるオブジェクトをファイル化できるバイト列のデータに変換することである。デシリアライズとは、シリアライズしたオブジェクトを復元し、プログラムからアクセスできる状態に戻すことである。
【発明の効果】
【０００６】
このように、上記本発明の特徴によれば、オブジェクトを読み込むプログラムを除くプログラムは端末においてファイルとして保存されることがなくなる。
【産業上の利用可能性】
【０００７】
ＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）のようなクラス等の中間コードプログラムをダウンロードして実行するプログラムにおいては、クラス等の中間コードが端末に保存される。この中間コードは逆コンパイルが容易であるため、ハッキングされやすく安全性に大きな問題がある。
【０００８】
本発明を使うと、クラス等から生成したオブジェクトをサーバに保管し、サーバのオブジェクトを端末プログラムで直接読み込むことにより、クラスを端末に保存せずに実行できる。そのため、クラスを逆コンパイルされる危険性がなくなり、安全性の高いシステムが構築できる。
【発明を実施するための最良の形態】
【０００９】
以下、図面１を参照しながら、本発明の一実施の形態を詳細に説明する。
【００１０】
端末  １で動作するブラウザ  ６から、サーバ  １０にあるクラス  １２を起動すると、クラス  １２がサーバから端末にダウウロードされＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）５が  端末  １で動作する。
【００１１】
通常のＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）であれば、サーバからダウンロードしたクラからオブジェクトを生成し、そのオブジェクトのメソッドを実行する。しかし、このときダウンロードしたクラスを逆コンパイルされると、簡単にソースプログラムが生成できる。
【００１２】
図１の本発明の一実施形態においては、クラスの変わりにシリアライズしたオブジェクト  １３ａ〜１３ｃをサーバに保管しておく。まず、クラス  １２を端末にダウンロードする。次に、ダウンロードしたクラス  ８からオブジェクト  ３ａを生成する。そして、前記オブジェクト３ａは、前記シリアライズしたオブジェクト１３ａ及び１３ｂをサーバから読込みデシリアライズしてオブジェクト  ３ｂ  ３ｃを復元する。
【００１３】
前記デシリアライズされたオブジェクトのメソッドは、ＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）  ２内で実行可能になるが、オブジェクトはハードディスク等には保存されない。
【００１４】
逆コンパイルプログラムは、ハードディスク等に保存されたプログラムファイルを逆コンパイルすることはできるが、動作中のオブジェクトにアクセスすることはできず、従って逆コンパイルもできない。なぜなら、ＪＡＶＡ（登録商標）プログラムは、端末のＯＳから隔離されたヴァーチャルマシン（ＪＡＶＡ  ＶＭ（登録商標））という環境の中で動作しているが、逆コンパイルプログラムはヴァーチャルマシンの外で動いているからである。  
【００１５】
シリアライズしたオブジェクトをデータベースに格納すると、データベースのアクセス制御により、シリアライズしたオブジェクトを不正なアクセスから守ることができる。
【００１６】
また、難読化したクラスから生成したオブジェクトをシリアライズすることにより、逆コンパイルがより困難になる。
【００１７】
更に、サーバと端末間の通信を暗号化することにより更に安全性が高まる。
【００１８】
上記実施形態において、本発明をシステムとして実施した。しかし、本発明は、システム構築方法、プログラム、プログラムを記録した記録媒体として実施することもできる。また、上記システムを提供する提供手段を含むサーバ（中継サーバを含む）として実施することもできる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態のシステム構成図
【図２】従来技術のシステム構成図
【符号の説明】
【００２０】
１  端末
２  ＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）
３ａ、３ｂ、３ｃ  オブジェクト
４  ネットワーク
５  ＪＡＶＡ  ＶＭ（登録商標）
６  ブラウザ
７  ハードディスク
８  クラス
１０  サーバ
１１  ＷＥＢサーバ
１２  クラス
１３ａ、１３ｂ  シリアライズしたオブジェクト
２１  端末
２２  ＪＡＶＡ  Ａｐｐｌｅｔ（登録商標）
２３ａ、２３ｂ、２３ｃ  オブジェクト
２４  ネットワーク
２５  ＪＡＶＡ  ＶＭ（登録商標）
２６  ブラウザ
２７  ハードディスク
２８ａ、２８ｂ、２８ｃ  クラス
３０  サーバ
３１  ＷＥＢサーバ
３２ａ、３２ｂ、３２ｃ  クラス
【図１】
2008186134.tif 000003
【図２】
2008186134.tif 000004