- PR -

Windowsからの移行について

1
投稿者投稿内容
sweetfish
会議室デビュー日: 2004/11/18
投稿数: 3
投稿日時: 2004-11-18 16:36
現在Windows2000+IIS5.0で構築しているWebアプリケーションを
Linux+PHPに移行予定です。

ASP→PHPの移行は、asp2phpというツールで
ある程度簡略化できそうなことがわかりました。

ASPでの処理で、COMコンポーネント(VB6.0製)を使っており、
それはどうやって移行するのか(できるのか)を調べていました。
Windows以外のOSの知識が皆無で、
「Windows、Linux、COMコンポーネント」等で検索してみましたが、
これ、というページが発見できませんでした。

検索キーワードや参考サイト等の情報をいただければ有難いです。
宜しくお願いします。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-11-18 17:40
引用:

ASPでの処理で、COMコンポーネント(VB6.0製)を使っており、
それはどうやって移行するのか(できるのか)を調べていました。


興味深いテーマなのですが、まず無理です。
(ひょっとしたら、LinuxでCOMを動かすというプロジェクトがあるかもしれませんが、寡聞にして知りません)
(WINEプロジェクト関連で、ちょっとあるみたいですが)
Windows用のCOMサポート

COMを使う目的が、Excel文書を〜処理する、WORD文書を〜処理する、という用件だとしたら、それぞれについて聞いた方がいい話を聞けると思います。
sweetfish
会議室デビュー日: 2004/11/18
投稿数: 3
投稿日時: 2004-11-18 18:00
ありがとうございます。
引用:

興味深いテーマなのですが、まず無理です。
(ひょっとしたら、LinuxでCOMを動かすというプロジェクトがあるかもしれませんが、寡聞にして知りません)
(WINEプロジェクト関連で、ちょっとあるみたいですが)
Windows用のCOMサポート



無理なら「無理」と書いてあるサイトを見つけたかったのです...
Windows上のPHPなら、上記サイトにある記述でOKそうですが、
OSがLinuxなので、だめそう(と読めました)。

引用:

COMを使う目的が、Excel文書を〜処理する、WORD文書を〜処理する、という用件だとしたら、それぞれについて聞いた方がいい話を聞けると思います。


DBアクセス等の処理を隠蔽するため(?)に使っています。
そういうものに該当するのは、Linux用語ではなんというのでしょうか。

PHPでCOMに代わるような処理を作れればそれでいいのかとも思いますが、
PHPも知らないので、にっちもさっちもです。

たとえば、VB.netで作ったDLLとか、VC++でつくったDLLならそのままもっていけて、
PHPから使えたりするのでしょうか。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-11-19 16:14
引用:

無理なら「無理」と書いてあるサイトを見つけたかったのです...
Windows上のPHPなら、上記サイトにある記述でOKそうですが、
OSがLinuxなので、だめそう(と読めました)。


だいたい、そんな所です。
(以前から、PHPのCOMサポート自体は知っていたので、COM自体をWINEで動せれば、そこからPHPでアクセスさせてしまえ!・・・という事をしている人がひょっとしたら、と思って上の回答でしたが、少し端折りすぎましたね(汗))
WINEは、Linux上で、WindowsのAPIを使う目的のプロジェクトです)

引用:

DBアクセス等の処理を隠蔽するため(?)に使っています。


ちょっと良く分りませんが、例えばPHPのマニュアルを見ると、データベースごとにアクセスする為の関数がありますが、「それを隠蔽してどの種類のデータベースにも同じ形でアクセス出来るようにする」という事でしょうか?
そのようなモノは、Database Abstraction Layer(抽象データベースレイヤー?)と呼ばれているみたいですが、一般的な言い方なのかは分りません。
PHPの場合、ADODB(今探してみましたが、リンク切れか、ちょっと見つかりませんでした)PEAR(標準のPHPにはインストールされています)あたりが有名です。

コード:
たとえば、VB.netで作ったDLLとか、VC++でつくったDLLならそのままもっていけて


無理です。
sweetfish
会議室デビュー日: 2004/11/18
投稿数: 3
投稿日時: 2004-11-22 09:25
引用:

WINEは、Linux上で、WindowsのAPIを使う目的のプロジェクトです)


COMを動かすAPIがあって、それをWINEで動かせればいけるのでは?ということでしょうか。
教えていただいたページを確認してみます。
引用:

引用:

DBアクセス等の処理を隠蔽するため(?)に使っています。


ちょっと良く分りませんが、例えばPHPのマニュアルを見ると、データベースごとにアクセスする為の関数がありますが、「それを隠蔽してどの種類のデータベースにも同じ形でアクセス出来るようにする」という事でしょうか?


データベースは決まっていて(今はMSSQLですが、移行後はMySQL)、ユーザIDとかパスワードとか、アクセス先のテーブル名だとかを自分の会社以外には知られないためにCOM化していました。あるメソッドを使うと、あるテーブルからレコードセットをとってくるなど。
他社さんに開発を頼むときなどに、DBアクセスの部分は自分の会社でCOM化し、○○メソッドを使ってください、のようにお願いしてました。COMだったら内部処理を知られずに、他社さんのローカル環境でもすぐ使えるので。
引用:

コード:
たとえば、VB.netで作ったDLLとか、VC++でつくったDLLならそのままもっていけて


無理です。


ありがたきお言葉。そのままもっていけないとわかれば、別方面から調べてみます。
とりあえず、WINEのページと、PHPのマニュアルを読んでみます。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-11-22 13:42
仕事の合間を縫って返答しているせいか、ちょーっと不適切な・・・というより、後から考えてみると、もっといい返答の仕方があったな、という部分もありましたがごめんなさい(汗)
引用:

たとえば、VB.netで作ったDLLとか、VC++でつくったDLLならそのままもっていけて、
PHPから使えたりするのでしょうか。


WINEを、Linux上でWindowsのAPIを使うようにする、という話をしましたが、ほんとにそのままでは無理ですが、WINEを使う!という事なのでしたら、WINE上でそのまま動かせるんじゃないかな?と思います。
(というか、いっその事IISそのものをWINEで動かしちゃえるんじゃないか?という考えも(笑))
ただ、WINEについては(有名なので聞いた事がある、という程度で)あまり知らないので実際に業務に使っているか?等の情報をメーリングリストなどに投げてから検討してみるといいかと思います。
(日本のユーザ会とかの情報は、今ちょっと調べてみたところうまくひっかからなかったので、自分で調べて見て下さい^^;)

引用:

データベースは決まっていて(今はMSSQLですが、移行後はMySQL)、ユーザIDとかパスワードとか、アクセス先のテーブル名だとかを自分の会社以外には知られないためにCOM化していました。あるメソッドを使うと、あるテーブルからレコードセットをとってくるなど。
他社さんに開発を頼むときなどに、DBアクセスの部分は自分の会社でCOM化し、○○メソッドを使ってください、のようにお願いしてました。COMだったら内部処理を知られずに、他社さんのローカル環境でもすぐ使えるので。


MSSQLとMySQLで使う場合のAPIを統一したい&パスワードなどを隠したいという所ですね?
例えば、ADOdb(見つかったのでリンク貼っておきます)で、
コード:
$CLIENT_1_DB = NewADOConnection('mysql');
//                    サーバ名     ユーザ名  パスワード データベース名
$CLIENT_1_DB->Connect(CL_1_SERVER, CL1_USER, CL1_PWD, CL1_DB);


のような感じにして、$CLIENT_1_DBを使ってもらえばいい、というような感じではいけないのでしょうか?
(つまり、データベースに接続した状態のオブジェクトを使ってもらえば、という感じで)
(もちろん、他社さんに頼むのもPHPコードの場合でないと駄目ですが)
1

スキルアップ/キャリアアップ(JOB@IT)