I meant SMACK Stack IoT Platform in the original posting …. 

> On Feb 10, 2017, at 11:49 PM, Tony Faustini <[email protected]> wrote:
> 
> This is a great question. Our intension is for iota to be a SMACK Stack Not 
> Platform. This means it uses
> 
> 1) Apache Spark
> 2) Apache Mesos
> 3) Akka
> 4) Apache Cassandra
> 5) Apache Kafka
> 
> The Fey engine is a component of the iota platform but not the entire 
> platform. The platform is a vertical stack that has a Mesos Cluster as it’s 
> highest layer. This could be in the cloud (AWS, Azure, …). The next level of 
> the platform might be at the device level say a RaspberryPi with sensors or 
> an aggregation server. The edge devices can process data locally on the 
> device using Fey components or/and feed them up the stack using Fey 
> components. Large amounts of data will arrive at the Mesos cluster. This data 
> can be proceeded by Fey and Fey components running as an Akka cluster on 
> Mesos. It can also be processed using a Spark cluster also running on the 
> Mesos layer.  Cassandra is used to persist data at the cluster level. Kafka 
> is the message bus for major software component to use when communicating 
> with each other. The SMACK stack becomes the data pipeline and processing 
> engine for IoT data streaming from edge based sensors. 
> 
> The first component of iota that we are making available is the Fey engine 
> and a selection of Fey components. For example a Fey component for Kafka that 
> includes Kafka producer and consumer capabilities. The iota Fey engine can 
> run at all levels of the iota stack. This can include a RaspberryPi on a JVM 
> in standalone Akka mode or on the Mesos Cluster where it runs as an Akka 
> cluster.
> 
> I hope this sheds light on the big picture. We can discuss the role of Docker 
> and Spark later so let’s not worry about them right now. 
> 
> This is a grand vision so where do we start? The simplest way to start is 
> with the Fey engine and Fey performers.
> 
> We are first releasing a version of the Fey engine and a selection of 
> performers. Interested parties can download and experiment with these. We 
> hope they will be inspired to build their own software components that they 
> can use and share with others. The best components can be included in the Fey 
> component release. A rich set of these components (called performers) will 
> enable powerful applications to be assembled by others providing data 
> pipeline and processing functionality needed in the iota platform. Here are a 
> few examples of performers that could be and have been written
> 1) A Restful performer that implements get, put and post to reach out to get 
> data and control “Things” on the internet. This could run on a RaspberryPi 
> and data could be passed on to other performers.
> 2) A component that ingests data from other performers and processes the data 
> based on some mathematical or statistical decisions and selectively outputs 
> that data to other performers.
> 3) A component that interacts get/put to an Apache Ignite in-memory system. 
> Data received from other performers can be put the data store or data read 
> from the store can be sent to other performers.
> 4) A component that interacts with Apache ActiveMQ similar to 3)
> 5) A component that receives a high level image from another component, makes 
> it low resolution image version and send it on to other performers.
> 6) A  component that can read values from I2C sensors and pass the value read 
> to other components.
> 
> These are some examples of component that have been and can be written as Fey 
> Performers. They form the core of a communication and processing system that 
> can be used to define a component based application. Such applications play 
> an important role in the iota platform.
> 
> How can someone contribute to the code base?
> 
> 1) Select you preferred development workflow. The following are all free
>       - vim and sbt (simple build tool) on the command line
>       - IntelliJ Community edition (sbt)
>       - Eclipse (sbt)
> 
> my personal preference is IntelliJ Community edition - Eclipse is also a 
> valid option if you prefer Eclipse.
> 
> Follow the instructions that are being placed in the iota wiki on how to 
> download and run  the fey engine and fey performers. Think of development for 
> Fey in the following terms
> 1) You have a palette of performers with different functionalities
> 2) Your applications will be limited by the set of performers you have 
> available to you. Say you have three performers P1 that reads numbers form a 
> sensor at a certain frequency say 5 seconds, you have P2 that waits for 
> values coming from other performers and if those values are between 0 and 100 
> they are set to other performers, and you have P3  that receives data from 
> other performers and places a message in the log file.
> 3) To create an application you would create the following orchestration P1 
> -> P2 -> P3  (it is a json object that defines each of the components used 
> how they interact with one another P1->P2->P3 and any parameters need by each 
> performer e.g. the 5 seconds frequency for this instance of performer P1).
> 4) You may find yourself needing to write an application for which you do not 
> have a complete set of components. Say it’s the example in 3) above but you 
> also want to send the message on a Kafka topic? You would then have to either 
> find a pre-existing Kafka performer that you get from some else or you would 
> write your own. 
> 
> So get familiar with Fey and Fey components on your own local dev machine and 
> write a simple Fey Application (orchestration) if you don’t have the needed 
> functionality write one or more performs to give you the functionality you 
> need. 
> This would be a good start. For run put Fey on a RaspberryPI or some other 
> Linux based ARM device (Intel Edition?) and run Fey on the device.
> 
> I hope my long winded explanation is of some help. Feel free to ask other 
> questions if I have not explained things well or not answered them at all.
> 
> -Tony
> 
> 
>> On Feb 10, 2017, at 10:13 PM, Gunnar Tapper <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi,
>> 
>> I'm trying to match the code with what's being said on 
>> http://iota.incubator.apache.org/features.html 
>> <http://iota.incubator.apache.org/features.html>
>> 
>> I'm not clear where I find; for example, docker and spark parts?
>> 
>> What's your advise for someone who wants to contribute? It seems like a good 
>> idea to read up on akka but then what?
>> 
>> I'm setting up my project to use eclipse. Is that the IDE of choice or is 
>> there something more appropriate?
>> 
>> 
>> -- 
>> Thanks,
>> 
>> Gunnar
>> If you think you can you can, if you think you can't you're right.
> 

Reply via email to