2010年4月10日土曜日

(仮称)クラウド研究会@札幌

441()@3(@nakayoshix)

 Android + Mule ESB + Twitter + OpenX + Scala + EC2


 SimpleModeler + AppEngine


 g3

SimpleModelerAppEngine/JDO
11PDC09Windows Azure

JavaEESpring


DSLDSLDSL

Android + Mule ESB + Twitter + OpenX + Scala + EC2

Android + Mule ESB + Twitter + OpenX + Scala + EC2Mule ESB





VisioOpenOffice使OpenOfficeOpenOffice

SimpleModeler + AppEngine

SimpleModeler + AppEngineScalaDSLSimpleModeler
UMLAppEngine/Java
UML
122AppEngine Ja Night #4DSLSimpleModeler使AppEngine Ja Night #4

g3

g3Scala DSL
Apache CamelScala DSLApach CamelAppEngineApache CamelDSL
g3DSL3DSL

 Google AppEngine Java


 Mule ESBESB


 


AppEngineTaskQueue
Mule ESBDSLXMLMule ESBEC2Windows Azure
DSLAppEngine, EC2, Windows AzureAppEngine, EC2, Windows AzureAppEngine, EC2, Windows Azure
/DSL
1[TwitterScan3.scala]()TwitterTLAtomFeedg3AtomFeedScalacase sequence(PartialFunction)使

TwitterScan3.scala
package org.goldenport.g3.app

import org.goldenport.g3._
import org.goldenport.g3.atom._

class TwitterScan3 extends G3Application {
service('demogon, "http://[user]:[passward]@twitter.com/statuses/user_timeline/demogon.atom")

  start invoke("demogon") agent {
    case AtomFeed(feed) => feed.toString
    case _ => "???"
  } agent {
    x => println("==> " + x)
    x
  }
}
2[Split4.scala]Enterprise I
ntegration PatternsSplitterAggregatorSplitterListAggregatorListSplitter

Split4.scala
package org.goldenport.g3.app

import org.goldenport.g3._

class Split4 extends G3Application {
  agent('compute) {
    case x: Int => x + 100
  } aggregate()

  start(List(1, 2, 3, 4, 5)) split() publish("compute")
}

()
TwitterScan3Split4TwitterScan3TwitterScan3Split4TwitterScan3

Split4
> run org.goldenport.g3.app.Split4
[info] 
[info] == compile ==
[info] Source analysis: 1 new/modified, 13 indirectly \
    invalidated, 0 removed.
[info] Compiling main sources...
[warn] there were unchecked warnings; re-run with -unchecked for \
    details
[warn] one warning found
[info] Compilation successful.
[info]   Post-analysis: 257 classes.
[info] == compile ==
[info] 
[info] == copy-resources ==
[info] == copy-resources ==
[info] 
[info] == run ==
[info] Running org.goldenport.g3.Main \
    org.goldenport.g3.app.Split4
G3Pipe.do_Process1(class \
    org.goldenport.g3.G3StartNode):List(WrappedArray(org.goldenport.g3.app.Split4)) \
G3StartNode.do_Process: \
    WrappedArray(org.goldenport.g3.app.Split4)
G3Publish.do_Process
G3Context.send
lookup = [compute], Some(org.goldenport.g3.G3AgentNode@1d01844a)
G3Pipe.do_Process1(class org.goldenport.g3.G3AgentNode):List(1)
G3Pipe.do_Process2(class org.goldenport.g3.G3AgentNode):1/List()
G3AgentNode.do_Process: 1
r = 101
terminal = List(1)
G3Publish.do_Process
G3Context.send
lookup = [compute], Some(org.goldenport.g3.G3AgentNode@1d01844a)
G3Pipe.do_Process1(class org.goldenport.g3.G3AgentNode):List(2)
G3Pipe.do_Process2(class org.goldenport.g3.G3AgentNode):2/List()
G3AgentNode.do_Process: 2
r = 102
terminal = List(2)
G3Publish.do_Process
G3Context.send
lookup = [compute], Some(org.goldenport.g3.G3AgentNode@1d01844a)
G3Pipe.do_Process1(class org.goldenport.g3.G3AgentNode):List(3)
G3Pipe.do_Process2(class org.goldenport.g3.G3AgentNode):3/List()
G3AgentNode.do_Process: 3
r = 103
terminal = List(3)
G3Publish.do_Process
G3Context.send
lookup = [compute], Some(org.goldenport.g3.G3AgentNode@1d01844a)
G3Pipe.do_Process1(class org.goldenport.g3.G3AgentNode):List(4)
G3Pipe.do_Process2(class org.goldenport.g3.G3AgentNode):4/List()
G3AgentNode.do_Process: 4
r = 104
terminal = List(4)
G3Publish.do_Process
G3Context.send
lookup = [compute], Some(org.goldenport.g3.G3AgentNode@1d01844a)
G3Pipe.do_Process1(class org.goldenport.g3.G3AgentNode):List(5)
G3Pipe.do_Process2(class org.goldenport.g3.G3AgentNode):5/List()
G3AgentNode.do_Process: 5
r = 105
terminal = List(List(101, 102, 103, 104, 105))
terminal = List(5)
[info] == run ==
[success] Successful.
[info] 
[info] Total time: 2 s, completed 2010/04/10 6:49:13

TwitterScan3
> run org.goldenport.g3.app.TwitterScan3
[info] 
[info] == copy-resources ==
[info] == copy-resources ==
[info] 
[info] == compile ==
[info] Source analysis: 0 new/modified, 0 indirectly invalidated, \
    0 removed.
[info] Compiling main sources...
[info] Nothing to compile.
[info]   Post-analysis: 257 classes.
[info] == compile ==
[info] 
[info] == run ==
[info] Running org.goldenport.g3.Main \
    org.goldenport.g3.app.TwitterScan3
G3Pipe.do_Process1(class \
    org.goldenport.g3.G3StartNode):List(WrappedArray(org.goldenport.g3.app.TwitterScan3)) \
G3Pipe.do_Process2(class \
    org.goldenport.g3.G3StartNode):WrappedArray(org.goldenport.g3.app.TwitterScan3)/List() \
G3StartNode.do_Process: \
    WrappedArray(org.goldenport.g3.app.TwitterScan3)
G3Invoke.do_Process
G3Context.invoke
lookup = [demogon], \
    Some(org.goldenport.g3.G3ServiceNode@53015c53)
G3Pipe.do_Process1(class org.goldenport.g3.G3ServiceNode):List()
G3Pipe.do_Process2(class \
    org.goldenport.g3.G3ServiceNode):List()/List()
G3ServiceNode.do_Process: List()
2010/04/10 6:44:21 \
    org.apache.http.client.protocol.ResponseProcessCookies \
    processCookies
?x??: Invalid cookie header: "Set-Cookie: guest_id=1270849461120; \
    path=/; expires=Sun, 09 May 2010 21:44:21 GMT". Unable to \
    parse expires attribute: Sun, 09 May 2010 21:44:21 GMT
terminal = List(<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" \
    xmlns:georss="http://www.georss.org/georss" \
    xmlns="http://www.w3.org/2005/Atom">
  <title>Twitter / demogon</title>
  <id>tag:twitter.com,2007:Status</id>
<link type="text/html" href="http://twitter.com/demogon" \
    rel="alternate"/>
<link type="application/atom+xml" \
    href="http://twitter.com/statuses/user_timeline/demogon.atom" \
    rel="self"/>
  <updated>2010-04-09T21:44:21+00:00</updated>
<subtitle>Twitter updates from \
    &#20986;&#33538;&#27177;&#22826;&#37070; / \
    demogon.</subtitle>
    <entry>
<title>demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</title> \
<content type="html">demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554547226</id>
      <published>2010-02-24T01:56:05+00:00</published>
      <updated>2010-02-24T01:56:05+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554547226" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554480122</id>
      <published>2010-02-24T01:54:33+00:00</published>
      <updated>2010-02-24T01:54:33+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554480122" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554430782</id>
      <published>2010-02-24T01:53:26+00:00</published>
      <updated>2010-02-24T01:53:26+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554430782" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
</feed>
)
G3Pipe.do_Process1(class org.goldenport.g3.G3Agent):List(<?xml \
    version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" \
    xmlns:georss="http://www.georss.org/georss" \
    xmlns="http://www.w3.org/2005/Atom">
  <title>Twitter / demogon</title>
  <id>tag:twitter.com,2007:Status</id>
<link type="text/html" href="http://twitter.com/demogon" \
    rel="alternate"/>
<link type="application/atom+xml" \
    href="http://twitter.com/statuses/user_timeline/demogon.atom" \
    rel="self"/>
  <updated>2010-04-09T21:44:21+00:00</updated>
<subtitle>Twitter updates from \
    &#20986;&#33538;&#27177;&#22826;&#37070; / \
    demogon.</subtitle>
    <entry>
<title>demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</title> \
<content type="html">demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554547226</id>
      <published>2010-02-24T01:56:05+00:00</published>
      <updated>2010-02-24T01:56:05+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554547226" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554480122</id>
      <published>2010-02-24T01:54:33+00:00</published>
      <updated>2010-02-24T01:54:33+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554480122" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554430782</id>
      <published>2010-02-24T01:53:26+00:00</published>
      <updated>2010-02-24T01:53:26+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554430782" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
</feed>
)
G3Pipe.do_Process2(class org.goldenport.g3.G3Agent):<?xml \
    version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" \
    xmlns:georss="http://www.georss.org/georss" \
    xmlns="http://www.w3.org/2005/Atom">
  <title>Twitter / demogon</title>
  <id>tag:twitter.com,2007:Status</id>
<link type="text/html" href="http://twitter.com/demogon" \
    rel="alternate"/>
<link type="application/atom+xml" \
    href="http://twitter.com/statuses/user_timeline/demogon.atom" \
    rel="self"/>
  <updated>2010-04-09T21:44:21+00:00</updated>
<subtitle>Twitter updates from \
    &#20986;&#33538;&#27177;&#22826;&#37070; / \
    demogon.</subtitle>
    <entry>
<title>demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</title> \
<content type="html">demogon: \
    &#33258;&#30001;&#12364;&#19992;&#12395;&#12388;&#12356;&#12383;&#12290;&#12524;&#12473;&#12488;&#12521;&#12531;&#12364;&#12356;&#12356;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554547226</id>
      <published>2010-02-24T01:56:05+00:00</published>
      <updated>2010-02-24T01:56:05+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554547226" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#12420;&#12387;&#12401;&#12426;&#33258;&#30001;&#12364;&#19992;&#12398;&#12452;&#12479;&#12522;&#12450;&#12531;&#12394;&#12435;&#12363;&#12393;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554480122</id>
      <published>2010-02-24T01:54:33+00:00</published>
      <updated>2010-02-24T01:54:33+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554480122" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
    <entry>
<title>demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</title> \
<content type="html">demogon: \
    &#27494;&#34101;&#23567;&#26441;&#12395;&#30528;&#12356;&#12383;&#12290;&#19968;&#26479;&#12420;&#12429;&#12358;&#12290;</content> \
<id>tag:twitter.com,2007:http://twitter.com/demogon/statuses/9554430782</id>
      <published>2010-02-24T01:53:26+00:00</published>
      <updated>2010-02-24T01:53:26+00:00</updated>
<link type="text/html" \
    href="http://twitter.com/demogon/statuses/9554430782" \
    rel="alternate"/>
<link type="image/png" \
    href="http://s.twimg.com/a/1270842741/images/default_profile_5_normal.png" \
    rel="image"/>
      <author>
        <name>&#20986;&#33538;&#27177;&#22826;&#37070;</name>
      </author>
    </entry>
</feed>
/List()
content = List()
content = List(demogon: ???R???u???????B???X?g???????????B)
xxx = demogon: ???R???u???????B???X?g???????????B
AtomContent = List(demogon: ???R???u???????B???X?g???????????B)
content = List(demogon: ???????R???u??C?^???A????????B)
xxx = demogon: ???????R???u??C?^???A????????B
AtomContent = List(demogon: ???????R???u??C?^???A????????B)
content = List(demogon: ????????????????B??t????B)
xxx = demogon: ????????????????B??t????B
AtomContent = List(demogon: ????????????????B??t????B)
G3Pipe.do_Process1(class \
    org.goldenport.g3.G3Agent):List(<feed><id>tag:twitter.com,2007:Status</id><title>Twitter \
    / demogon</title><updated>Sat Apr 10 06:44:21 JST \
    2010</updated><entry><title>demogon: \
    ???R???u???????B???X?g???????????B</title><link/><link/><content>demogon: \
 \
    ???R???u???????B???X?g???????????B</content></entry><entry><title>demogon: \
 \
    ???????R???u??C?^???A????????B</title><link/><link/><content>demogon: \
 \
    ???????R???u??C?^???A????????B</content></entry><entry><title>demogon: \
    ????????????????B??t????B</title><link/><link/><content>demogon: \
    ????????????????B??t????B</content></entry></feed>)
G3Pipe.do_Process2(class \
    org.goldenport.g3.G3Agent):<feed><id>tag:twitter.com,2007:Status</id><title>Twitter \
    / demogon</title><updated>Sat Apr 10 06:44:21 JST \
    2010</updated><entry><title>demogon: \
    ???R???u???????B???X?g???????????B</title><link/><link/><content>demogon: \
 \
    ???R???u???????B???X?g???????????B</content></entry><entry><title>demogon: \
 \
    ???????R???u??C?^???A????????B</title><link/><link/><content>demogon: \
 \
    ???????R???u??C?^???A????????B</content></entry><entry><title>demogon: \
    ????????????????B??t????B</title><link/><link/><content>demogon: \
    ????????????????B??t????B</content></entry></feed>/List()
==> <feed><id>tag:twitter.com,2007:Status</id><title>Twitter / \
    demogon</title><updated>Sat Apr 10 06:44:21 JST \
    2010</updated><entry><title>demogon: \
    ???R???u???????B???X?g???????????B</title><link/><link/><content>demogon: \
 \
    ???R???u???????B???X?g???????????B</content></entry><entry><title>demogon: \
 \
    ???????R???u??C?^???A????????B</title><link/><link/><content>demogon: \
 \
    ???????R???u??C?^???A????????B</content></entry><entry><title>demogon: \
    ????????????????B??t????B</title><link/><link/><content>demogon: \
    ????????????????B??t????B</content></entry></feed>
terminal = \
    List(<feed><id>tag:twitter.com,2007:Status</id><title>Twitter \
    / demogon</title><updated>Sat Apr 10 06:44:21 JST \
    2010</updated><entry><title>demogon: \
    ???R???u???????B???X?g???????????B</title><link/><link/><content>demogon: \
 \
    ???R???u???????B???X?g???????????B</content></entry><entry><title>demogon: \
 \
    ???????R???u??C?^???A????????B</title><link/><link/><content>demogon: \
 \
    ???????R???u??C?^???A????????B</content></entry><entry><title>demogon: \
    ????????????????B??t????B</title><link/><link/><content>demogon: \
    ????????????????B??t????B</content></entry></feed>)
[info] == run ==
[success] Successful.
[info] 
[info] Total time: 2 s, completed 2010/04/10 6:44:22