Tools and Deployment University of Illinois at Urbana-Champaign.

Post on 17-Jan-2016

219 views 0 download

Tags:

Transcript of Tools and Deployment University of Illinois at Urbana-Champaign.

Tools and Deployment

University of Illinois at Urbana-Champaign

Outline

• Installation of Community Hub

• Meandre servers and clusters

• Development Tools: Eclipse Plugin

• Hands-On

Installing the Community Hub

• Deploy the Wordpress plugin• Unzip file into Wordpress plugins directory

Community Hub Customization (1)• Makes flows available for exploration and

execution – Renders the description of the flow information – Provides a simple execute button to allow

visitors to run the flow

• Exploration via wordpress shortcode to expose the Keyword Cloud functionality– [MeandreTagCloud

store='http://demo.seasr.org:1714/public/services/repository.rdf’]

– [MeandreListSelectedTags]– [MeandreListFlowsByTags

store='http://demo.seasr.org:1714/public/services/repository.rdf’]

Community Hub Customization (2)

Pages and posts • Add the wordpress shortcode to display the meta

information and execute buttons– [MeandreDescribeFlow]

– [MeandreListFlowsByFlowTags]

• Add custom fields for specifying meta information– FlowURI: specifies the uri of the flow

– ImageURI: specifies a uri to associate with this flow

– StoreURI: specifies the uri of the flow rdf

– CustomFlowURI: specifies the uri of the flow that allows user to input their data

– ExecuteURI: specifies the uri of the server where flow should run

Eclipse Plugin for Developers

• On the SEASR/Meandre download site

– http://seasr.org/meandre/download/

• Steps for installation

• Exit Eclipse

• Download zip file into Eclipse/dropins directory

• Unzip file

• Restart Eclipse

Developers: Eclipse Plugin

• Uploads components to the Meandre Server

• Lists components installed

• Allows for removal of components

• Shows additional data of interest to a programmer

Meandre: The Architecture

• The design of the Meandre architecture follows three directives:

– provide a robust and transparent scalable solution from a laptop to large-scale clusters

– create an unified solution for batch and interactive tasks

– encourage reusing and sharing components

• To ensure such goals, the designed architecture relies on four stacked layers and builds on top of service-oriented architectures (SOA)

Meandre: Basic Single Server

Meandre MDX: Cloud Computing• Servers can be

– instantiated on demand

– disposed when done or on demand

• A cluster is formed by at least one server

• The Meandre Distributed Exchange (MDX)

– Orchestrates operational integrity by managing cluster configuration and membership using a shared database resource.

Meandre MDX: The PictureM

DX B

ackb

one

Meandre MDX: The Architecture• Virtualization infrastructure

– Provide a uniform access to the underlying execution environment. It relies on virtualization of machines and the usage of Java for hardware abstraction.

• IO standardization– A unified layer provides access to shared data stores, distributed file-system, specialized metadata stores, and access to other service-oriented architecture gateways.

Meandre MDX: The Architecture• Data-intensive flow infrastructure

– Provide the basic Meandre execution engine for data-intensive flows, component repositories and discovery mechanisms, extensible plugins and web user interfaces (webUIs).

• Interaction layer– Can provide self-contained applications via webUIs, create plugins for third-party services, interact with the embedding application that relies on the Meandre engine, or provide services to the cloud.

Meandre: ZigZag Script Language• ZigZag is a simple language for describing data-intensive flows

– Modeled on Python for simplicity.

– ZigZag is declarative language for expressing the directed graphs that describe flows.

• Command-line tools allow ZigZag files to compile and execute.

– A compiler is provided to transform a ZigZag program (.zz) into Meandre archive unit (.mau).

– Mau(s) can then be executed by a Meandre engine.

Meandre: ZigZag Script Language• As an example the Flow Diagram

– The flow below pushes two strings that get concatenated and printed to the console

Meandre: ZigZag Script Language

• ZigZag code that represents example flow:#

# Imports the three required components and creates the component aliases #import <http://localhost:1714/public/services/demo_repository.rdf> alias <http://test.org/component/push_string> as PUSH alias <http://test.org/component/concatenate-strings> as CONCATalias <http://test.org/component/print-object> as PRINT ## Creates four instances for the flow # push_hello, push_world, concat, print = PUSH(), PUSH(), CONCAT(), PRINT() # # Sets up the properties of the instances # push_hello.message, push_world.message = "Hello ", "world!" ## Describes the data-intensive flow # @phres, @pwres = push_hello(), push_world() @cres = concat( string_one: phres.string; string_two: pwres.string ) print( object: cres.concatenated_string ) #

Meandre: ZigZag Script Language

• Automatic Parallelization – Multiple instances of a component could be run in parallel to boost throughput.

– Specialized operator available in ZigZag Scripting to cause multiple instances of a given component to used

• Consider a simple flow example show in the diagram

• The dataflow declaration would look like# # Describes the data-intensive flow # @pu = push() @pt = pass( string:pu.string )print( object:pt.string )

Meandre: ZigZag Script Language

• Automatic Parallelization

– Adding the operator [+AUTO] to middle component

– [+AUTO] tells the ZigZag compiler to parallelize the “pass component instance” by the number of cores available on system.

– [+AUTO] may also be written [+N] where N is an numeric value to use for example [+10].

# Describes the data-intensive flow # @pu = push() @pt = pass( string:pu.string ) [+AUTO]print( object:pt.string )

Meandre: ZigZag Script Language

• Automatic Parallelization

– Adding the operator [+4] would result in a directed grap

# Describes the data-intensive flow # @pu = push() @pt = pass( string:pu.string ) [+4]print( object:pt.string )

# Describes the data-intensive flow # @pu = push() @pt = pass( string:pu.string ) [+4!]print( object:pt.string )

Scaling Genetic Algorithms with Meandre

Intel 2.8Ghz QuadCore, 4Gb RAM. Average of 20 runs.

And Beyond with Hadoop

60 Dual Quad Core Xeons with 8GB RAM. GB Ethernet

Resources exhaustion

Meandre: Flows to MAU

• Flows can be executed using their RDF descriptors

• Flows can be compiled into MAU

• MAU is:

– Self-contained representation

– Ready for execution

– Portable

– The base of flow execution in grid environments

Compile and Run MAU

Compile zigzag to mau creating my_file.mau

• java -jar ~/meandre/zzc-1.4.9.jar my_file.zz

Run the mau file

• java -jar ~/meandre/zzre-1.4.9.jar -port 1816 my_file.mau

Demonstration

• Installation of Meandre

• Meandre Eclipse Plugin

• JIRA, Confluence, Bamboo - what they are and what we use them for

• Usage of ZigZag

– Compiling and executing flows using ZigZag

– Usage of ZigZag for Zotero-enabled flows

– Usage of ZigZag for Fedora flows

Learning Exercises

• Open an existing ZigZag flow

• Convert your flow from yesterday to ZigZag

• Compile the script

• Execute the script

• Have participants download and install SEASR on their personal computers

• Have participants sign up for accounts to access the SEASR suite of Atlassian tools

• Use JIRA to log a support request

Discussion Questions

• What challenges (if any) would scholars have installing the SEASR software?

• Do you see your institution's IT department running the SEASR environment or would it be your research group?

• Which environment would you most likely use, the Meandre Workbench or the ZigZag scripting language?