ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

JavaでCassandraにアクセス その1 とりあえず、読んでくる

2012-01-23 16:47:12 | そのほか
今までで、Cassandraにデータを入れたり、見たり出来たので、
今度は、Javaで操作することを考えます。

1.eclipseで新しくプロジェクトを作ります。

2.そのプロジェクトに、必要なjarを入れていきます。

ここ

http://www.ne.jp/asahi/hishidama/home/tech/apache/cassandra/java.html

の「ライブラリー」に書かれているjarを入れました。

eclipseで、左側のパッケージエクスプローラーから1で作ったプロジェクトを右クリック、
プロパティを選択。
プロパティダイアログが出たら、左側でJavaのビルドパスを選択
ライブラリータブをクリックして、「外部Jarの選択」ボタンをクリックして、
こんなかんじで入れました。

ちなみにこれらのjarは、cassandraの下のlibにあるものを指定してあります


3.プログラムを作成する
 上記サイトにあるプログラムは、うまくコンパイルできなかった。
 そこで、

Cassandra0.7.0のJava APIサンプル
http://blog.ik.am/entry/view/id/52/title/Cassandra0.7.0%E3%81%AEJava+API%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB/




「1列から特定のカラムのみ取得」をコピーし、
  クラス名を自分の作ったクラスに変えて、
// キースペース名
String ksName = "Keyspace1";
// カラムファミリ名
String cfName = "Users";
// キー名
String keyName = "jsmith";
// カラム名
String cName = "first";
 に書き換えた(下の例では、importも若干まとめてある)
 
4.Cassandraのサーバー側を立ち上げる
  いつものようにcassandra.batで

5.このプロジェクトを実行すると・・
 どれを動かすか聞いてくるので、このプロジェクトで作っているクラス名のものを選ぶと
 こんなかんじ

 で動きました。
 (なんか、瞬間なにかがでてるんだよなあ~・・・早くて見えん。
  何か間違ってるのかも??)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JUnitからJPFへ-というより、数十年に1度のパラダイムシフトについて

2012-01-23 12:31:55 | そのほか
 最近のソーシャルブームにより、分散による、並行処理的な問題を考えざるを得なくなってきた。

 Javascriptやスマートフォンは、同時に複数のプログラムを並列処理し、それらが関係している状態になっている。

 たとえば、スマートフォンのAndroidでいえば、サービスを起動し、裏で処理、ブロードキャストレシーバーによって、表の処理に通知するというのは簡単に出来るし、たぶん、いろんなアプリで多用されていることだろう。

 Javascriptにおいては、処理が終わったら、この関数を実行してね!という形のプログラミングが出来る、というより多用されている。これにクロージャを合わせると、並列化している処理が、クロージャの変数を共用することになる。

 組み込みの世界では、このような事態は当たり前だったのだろうが、それが、ソーシャルアプリの世界まで入ってくる。そのうち、業務アプリにも、入ってくるだろう。スパートフォンとJavascriptは。




 ここで問題になるのは、JUnitなどのテストだ。

 JUnitは、メイヤーさんのDbCの考えに基づいている。
 この事前条件、事後条件とかいう概念は、Hoare論理までさかのぼれると思うが、
 この論理は、あくまで副作用なしの話だ。

 つまり、

  ・事前条件を調べたときは、OKだった。
  ・アプリAが動いていないときは
  ・事後条件をみたす。→緑

 でも、

  ・事前条件を調べたときは、OKだった。
  ・アプリAが動き、クロージャー変数Xを変更すると、そのXを使っているため
  ・事後条件をみたさなくなった。→赤

 というケースがJUnitではありえる。環境によって、緑になったり赤になったりということだ。
 この場合、いまAが悪さしているとわかっているので、簡単そうに見えるが、
 これが、判らなかったとしたら・・・
 JUnitで調べるのは、たいへんそうだ・・・





 Hoareさんは、そのため?かどうかわからないが、もうひとつ、重大な方向性を示してくれた。
 それが、プロセス代数だ。
 CSPとかだけど、こういう感じのチェック(つまり、並列に動くもののチェック)ができるのが、
モデル検査であり、様々出ている。

 Javaだと、Java Path Finder(JPF)などなど。




 この、手続き型から、そうでないものへの変化は、すごい大きな変化であって、
数十年に1度の変化といえる。
 まさに、パラダイムシフトだが、このシフトはおきるだろうか

 ・・・という話をいつかまた、書いてみたい
 (ちなみに、起きる!と思っている)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする