Hello Tony,
Thanks! It really helps me. I'm trying to work on it.
One more, is there some stand-alone build deploy script which work on OSX?

BR,
Dennis

2016-11-01 13:53 GMT+09:00 Tony Faustini <[email protected]>:

> Hi Dennis, great question. I do all my development for Iota using the
> IntelliJ community edition so there is a Mac development environment and it
> works well. One thing that I have been thinking about but haven’t gotten
> around to is producing a video that would show you how to setup an Intellij
> environment download iota and start developing iota performers using
> Scala/Akka. You can run the iota engine on devices as small as a Raspberry
> or as large as a Mesos cluster. That’s we we do at Litbit. Here is an
> example of what you would use Intellij to output
>
> 1) a set of jar files one for each performer
> 2) An orchestration which is essentially the network of interacting
> performers
>
> You could run this on any JVM
>
> Here are some examples of orchestrations (Performers not included)
>
> Here is test orchestration that shows a single performer that is
> configured to consume from a Kafka cluster - The orchestration doesn’t
> connect it to anything so it doesn’t do much.
>
> {
>   "guid" : "KAFKA-CONSUMER-10",
>   "command" : "CREATE",
>   "timestamp": "21326329079",
>   "name" : "ORCHESTRATION FOR TEST",
>   "ensembles" : [
>     {
>       "guid":"KAFKA-CONSUMER-ENS",
>       "command": "NONE",
>       "performers":[
>         {
>           "guid": "KAFKA-PERFORMER-10",
>           "schedule": 0,
>           "backoff": 0,
>           "autoScale": 4,
>           "source": {
>             "name": "fey-kafka-10.jar",
>             "classPath": "org.apache.iota.fey.performer.Kafka_Consumer",
>             "parameters": {
>               "topic":"test-10p",
>               "consumer_number": "2",
>               "kafka_properties":"{\"bootstrap.servers\": \"localhost:9092\", 
> \"key.deserializer\": 
> \"org.apache.kafka.common.serialization.StringDeserializer\", 
> \"value.deserializer\":\"org.apache.kafka.common.serialization.StringDeserializer\"}"
>             }
>           }
>         }
>       ],
>       "connections":[]
>     }
>   ]
> }
>
> Here is a more complex orchestration that runs on a RaspberryPi. It takes
> the input of many sensors and send them to a ZMQ performer that publishes
> them. It could equally have been an MQTT or ActiveMQ performer
>
> {
>   "guid": "MAESTRO-3",
>   "command": "RECREATE",
>   "timestamp": "7919767890",
>   "name": "DESCRIPTION",
>   "ensembles": [
>     {
>       "guid": "TEMPERATURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", 
> \"args\":[{\"string\":\"1ed6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.5} 
> ]}",
>               "lrns": "[\"1ed6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "PRESSURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "comment": "This forces a value to be output every 10 seconds",
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "comment": "The Cherry checks to see if it should output something 
> every 1 second",
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey-cherry-rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", 
> \"args\":[{\"string\":\"3fd7aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.1} 
> ]}",
>               "lrns": "[\"3fd7aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "HUMIDITY",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", 
> \"args\":[{\"string\":\"2fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":5.0} 
> ]}",
>               "lrns": "[\"2fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUNDDB",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", 
> \"args\":[{\"string\":\"7fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":3.0} 
> ]}",
>               "lrns": "[\"7fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION_AGGREGATE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", 
> \"args\":[{\"string\":\"5fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.02} 
> ]}",
>               "lrns": "[\"5fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "VibrationStream",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": 
> "{\"didVibrationChange\":\"6fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"6fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "VibrationStream": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUND_WAV",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Cherry",
>           "schedule": 3000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": 
> "{\"didSoundChange\":\"9fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"9fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     }
>   ]
> }
>
> Here is a very simple performer that operators on a schedule specified in
> an orchestration and simple passes the string “Alive” to anything that it
> is connected to i the orchestration that uses it.
>
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
>
> package org.apache.iota.fey.performer
>
> import akka.actor.ActorRef
> import org.apache.iota.fey.FeyGenericActor
>
> import scala.collection.immutable.Map
> import scala.concurrent.duration._
>
> class Heartbeat(override val params: Map[String, String] = Map.empty,
>                 override val backoff: FiniteDuration = 1.minutes,
>                 override val connectTo: Map[String, ActorRef] = Map.empty,
>                 override val schedulerTimeInterval: FiniteDuration = 
> 30.seconds,
>                 override val orchestrationName: String = "",
>                 override val orchestrationID: String = "",
>                 override val autoScale: Boolean = false) extends 
> FeyGenericActor {
>
>   override def onStart = {
>   }
>
>   override def onStop = {
>   }
>
>   override def onRestart(reason: Throwable) = {
>     // Called after actor is up and running - after self restart
>   }
>
>   override def customReceive: Receive = {
>     case x => log.info(s"Untreated $x")
>   }
>
>   override def processMessage[T](message: T, sender: ActorRef): Unit = {
>   }
>
>   override def execute() = {
>     propagateMessage("Alive")
>   }
>
> }
>
>
>
>
> On Oct 31, 2016, at 9:32 PM, Dennis Jung <[email protected]> wrote:
>
> Hello Tony,
> Thanks for notification. Also, do you have a plan to make dev environment
> for Mac? It seems like it supports Linux only currently.
>
> BR,
> Dennis
>
> 2016-11-01 13:27 GMT+09:00 Tony Faustini <[email protected]>:
>
>> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow
>> evening to give folks a chance to comment as requested by Justin. Yes the
>> Wiki is quite slow tonight.
>>
>> Thanks
>> -Tony
>>
>> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <[email protected]>
>> wrote:
>> >
>> > Looks good.
>> >
>> > I assume it's in the wiki, but cannot check, the wiki is incredibly
>> slow now.
>> >
>> > Hadrian
>> >
>> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
>> >> iota
>> >>
>> >> Open source system that enables the orchestration of IoT devices.
>> >>
>> >> iota has been incubating since 2016-01-20.
>> >>
>> >> Three most important issues to address in the move towards graduation:
>> >>
>> >>  1. Building the developer community
>> >>  2. Outreach at events outside the Apache ecosystem to inform and
>> invite participation in the project
>> >>  3. Better leadership of the project itself
>> >>
>> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>> >> aware of?
>> >>
>> >> Committers are still very interested in seeing this podling develop.
>> >>
>> >> How has the community developed since the last report?
>> >>
>> >> Slowly - mainly 4 individuals that are contributing in spurts of
>> activity. This needs to become consistent with better online leadership.
>> >>
>> >> How has the project developed since the last report?
>> >>
>> >> Technical contributions have been made and will continue to be  made
>> but there is a need engage and articulate the vision and architecture more
>> actively on the mailing lists.
>> >>
>> >> Date of last release:
>> >>
>> >>  Not released yet - had discussed an initial release at the end of
>> this year but will need to see a stronger ecosystem develop to facilitate
>> such a goal.
>> >>
>> >> When were the last committers or PMC members elected?
>> >>
>> >> 10 months ago
>> >>
>> >> Signed-off-by:
>> >>
>> >>  [ ](iota) Daniel Gruno
>> >>  [ ](iota) Sterling Hughes
>> >>  [ ](iota) Justin Mclean
>> >>  [ ](iota) Hadrian Zbarcea
>> >>
>> >> Shepherd/Mentor notes:
>> >>
>> >>
>>
>>
>
>

Reply via email to