いわゆる「Web API」を備えた情報配信サーバを、仕事で、構築する事を考えていま

す。
(条件)
・企業の社内イントラ利用のみ
・LAMPか、WAMP構成で
・テキストデータと、いろんな種類のファイルデータをAPI経由で叩くとレスポンス
として得られる、という仕組み(検索とダウンロード機能)
・大元のデータのアップロードは、なんでもよい(APIでなくても、手動で直接コ
ピーでも)ので個別に実装
・1部門1台、くらいぽこぽこと複数台独立でお手軽に構築して回りたい
・1人の担当者が順番に構築、できるだけ同じパターンでお手軽に構築したい

ここまで考えて、で質問の本題です。
例えばLAMPであれば、PのPHPが気になります。Perl、Ruby、Pythonとか、他にも手段
ありますよね。今からだとお勧めは何なんでしょう?パフォーマンスよりは、開発効
率重視ですね。自分がこう動いて欲しい、というWebAPIの動きをコツコツ機能アップ
していくというイメージで。
MySQLの操作にPHPは入れておくのは構わない(XAMPPとか考えてますし)んですが、
サービス周りは別言語でもいいかなと・・・
JavaよりはLL言語の方が良いんじゃないかと勝手に思ってます。

回答の条件
  • 1人2回まで
  • 登録:2007/09/15 22:09:46
  • 終了:2007/09/22 22:10:04

回答(6件)

id:paraizo No.1

paraizo回答回数139ベストアンサー獲得回数102007/09/15 22:52:11

ポイント19pt

Ruby on Railsはどうですか?

XMLRPCは標準装備ですし、MySQLだけでなく大抵のDBに対応しています

スケーラビリティがちょっと難点ですが部門サーバとのことなので問題ないと思います

id:katow

なるほど。ActiveRubyってあったんですね。

ちょっと探したらXAMPPのようなのもありました。

http://instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails

この辺は、確かに候補にしたいですねー。

スケーラビリティというのは確かに今回特に問題にならないと思うのですが、問題になるとすれば、パフォーマンスを求められた際に

1)根本的にリソース&CPU食いなので1台のサーバを強化してもあまり早くならない

2)複数サーバで分散型の構築が難しい仕組みになっている

とか、どの辺が不利ですかね?

まあ、LL言語だから、というニュアンスも感じますが…

2007/09/15 23:21:41
id:hayashi4 No.2

hayashi4回答回数76ベストアンサー獲得回数12007/09/15 23:59:51

ポイント19pt

しろうと向けならphp、開発者向けならrubyもいるでしょう。http://www

id:kent0608 No.3

kent0608回答回数220ベストアンサー獲得回数232007/09/16 00:47:33

ポイント18pt

言語というより、開発効率向上のためのフレームワークの導入を検討されているのでしょうか?

個人的にですが、PHPならばSymfony、RubyならばRuby on Railsをオススメします。

ただし、Rubyの場合はPHPほど技術者の数が豊富ではなく、教育コストなどがかかってしまうのが難点ですが・・・

しかしながらRuby on Railsは本当によく考えて設計されています。教育に関してもOOPの基本さえ分かっていれば、すんなり吸収できると思います。一度お試しになってはいかがでしょうか?

http://www.ruby-lang.org/ja/

id:katow

その昔にPerl5.2なら結構いじってました。

最近はVB.NETでWebAPIを利用するWinクライアントソフトを作ってたりしまして、OOPは便利だなあ(開発環境と相性が良いなあ)と思え始めていたので、そう考えるとRubyは良い選択肢のような気がします。

2007/09/16 10:17:28
id:KUROX No.4

KUROX回答回数3542ベストアンサー獲得回数1402007/09/16 05:32:40

ポイント18pt

Ruby on Railsは、よく効くので、お勧めなのかもしれませんね

----------------------------------------------------

Java使って、市販のアプリケーションサーバーを使って、

ロードバランサーも使い出したら、分散化もそう難しい

ことではないかも。

そこまでやりならDBもOeacleあたりがいいでしょうね。

UNIXはLinuxでも良いと思いますがHP-UXも候補には

あがってくるだろうと思います。


Linux、Apache、MySQL、PHPの組み合わせが

トータルコストが安そうなのでお勧めします。

Linux、Apache、Tomcat、Oracle、Javaとかは

経験ありますが・・。

Windowsサーバーも使うところ増えてきましたよ。

Oracleはほぼ確実。

http://q.hatena.ne.jp/answer

id:katow

会社の遊休PCを利用して立ち上げようと考えてまして、Oracleは今回は避けとこうかなーと。

(どんどん低価格ライセンスのパッケージも出て来ているのは噂で聞いてますが)

で、遊休PCだとWindowsサーバにはたしかになりそうです。

若干違う話ですが、VB.NETの開発環境(VB2005Express)のデータベースエクスプローラから便利に使おうとする(私が使い慣れている)と、本当はSQLServerExpressとかが使えるとありがたいんですけどね。LL言語と連携したフレームワークはなさげなので。

2007/09/16 10:25:46
id:garyo No.5

garyo回答回数1782ベストアンサー獲得回数962007/09/18 09:33:02

ポイント18pt

http://ruby.g.hatena.ne.jp/garyo/20061129/1164774653

Rubyを使うとXMLRPCも簡単に使えますよ。

client

require 'xmlrpc/client'

client = XMLRPC::Client.new2("http://localhost:8080/XMLRPCserver.rb")
result = client.call("sample.sumAndDifference", 5, 3)
sum = result["sum"]
difference = result["difference"]
puts "Sum: #{sum}, Difference: #{difference}"

server

#!/usr/local/bin/ruby

require "xmlrpc/server"
s = XMLRPC::CGIServer.new
s.add_handler("sample.sumAndDifference") do |a,b|
  { "sum" => a + b, "difference" => a - b }
end
s.serve
id:katow

ほおおお。

今日本屋で若干Ruby本を読んできたおかげで若干文法がわかりますが、これだけで2引数に対して2個レスポンスを返すというWebAPIができあがり、ということですね。

やっぱりよさそうです。ありがとうございます。はてなグループの方もまた後で詳しく拝見させて頂きます。

2007/09/19 02:04:49
id:paraizo No.6

paraizo回答回数139ベストアンサー獲得回数102007/09/18 10:56:35

ポイント18pt

1番の回答者ですが

>1)根本的にリソース&CPU食いなので1台のサーバを強化してもあまり早くならない

リソースとCPUははっきり言って食います、具体的にはJavaなどに比べて10倍から50倍くらい、Perlと比べても2倍は遅い気がします。ですが計算コストが高いアプリを組む場合はCなどで拡張モジュールを作成することによって回避出来ます。またリソースもメソッド呼び出しがハッシュとスタックの組み合わせのため深い呼び出しをするとえらいことになります。

>2)複数サーバで分散型の構築が難しい仕組みになっている

分散することによる解決は他のフレームワークに比べてむしろ簡単だと思います。Twitterは簡単なアプリケーションですが毎秒1万リクエスト以上捌いているようです。

id:katow

>1)の件

結構具体的に回答頂きまして、ありがとうございます。

今回一番最初の質問の要件で

・テキストデータと、いろんな種類のファイルデータをAPI経由で叩くとレスポンスとして得られる、という仕組み(検索とダウンロード機能)

というのが必須でして、検索と履歴管理などは、結構工夫したり機能をシンプルにしないといけなさそうですね。逆にファイルの1点or一括ダウンロードはハードとネットワークの話にできそうで、問題なさげ。

検索機能としては、比較的保持するテキストデータ量よりもそれに対するインデックスを多種大量に保持して様々な検索に対応できるようにしたいので、これが相性が良いかは・・・まあ自分で体験してみます。

>2)の件

なるほど。これも分散型にはしたものの、階層は深くならないようにする、とかでかわしてるのかも。勉強になります。

2007/09/19 02:17:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません