26
Tools and Deployment University of Illinois at Urbana-Champaign

Tools and Deployment University of Illinois at Urbana-Champaign

Embed Size (px)

Citation preview

Page 1: Tools and Deployment University of Illinois at Urbana-Champaign

Tools and Deployment

University of Illinois at Urbana-Champaign

Page 2: Tools and Deployment University of Illinois at Urbana-Champaign

Outline

• Installation of Community Hub

• Meandre servers and clusters

• Development Tools: Eclipse Plugin

• Hands-On

Page 3: Tools and Deployment University of Illinois at Urbana-Champaign

Installing the Community Hub

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

Page 4: Tools and Deployment University of Illinois at Urbana-Champaign

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’]

Page 5: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 6: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 7: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 8: Tools and Deployment University of Illinois at Urbana-Champaign

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)

Page 9: Tools and Deployment University of Illinois at Urbana-Champaign

Meandre: Basic Single Server

Page 10: Tools and Deployment University of Illinois at Urbana-Champaign

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.

Page 11: Tools and Deployment University of Illinois at Urbana-Champaign

Meandre MDX: The PictureM

DX B

ackb

one

Page 12: Tools and Deployment University of Illinois at Urbana-Champaign

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.

Page 13: Tools and Deployment University of Illinois at Urbana-Champaign

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.

Page 14: Tools and Deployment University of Illinois at Urbana-Champaign

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.

Page 15: Tools and Deployment University of Illinois at Urbana-Champaign

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

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

Page 16: Tools and Deployment University of Illinois at Urbana-Champaign

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 ) #

Page 17: Tools and Deployment University of Illinois at Urbana-Champaign

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 )

Page 18: Tools and Deployment University of Illinois at Urbana-Champaign

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 )

Page 19: Tools and Deployment University of Illinois at Urbana-Champaign

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 )

Page 20: Tools and Deployment University of Illinois at Urbana-Champaign

Scaling Genetic Algorithms with Meandre

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

Page 21: Tools and Deployment University of Illinois at Urbana-Champaign

And Beyond with Hadoop

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

Resources exhaustion

Page 22: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 23: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 24: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 25: Tools and Deployment University of Illinois at Urbana-Champaign

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

Page 26: Tools and Deployment University of Illinois at Urbana-Champaign

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?