Unclassified// Protected Information// Proprietary Information Building Applications with the MeDICi Integration Framework Scientist/Analyst Miners Plumbers.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Tom Sugden EPCC OGSA-DAI Future Directions OGSA-DAI User's Forum GridWorld 2006, Washington DC 14 September 2006.
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Tableau Software Australia
Distributed Data Processing
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
A Scalable Virtual Registry Service for jGMA Matthew Grove CCGRID WIP May 2005.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Homework 2 In the docs folder of your Berkeley DB, have a careful look at documentation on how to configure BDB in main memory. In the docs folder of your.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 9: Moving to Design
Client/Server Architecture
Capacity Planning in SharePoint Capacity Planning Process of evaluating a technology … Deciding … Hardware … Variety of Ways Different Services.
Understanding and Managing WebSphere V5
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
SOA, BPM, BPEL, jBPM.
Workflow Management Chris A. Mattmann OODT Component Working Group.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Collaborating with iPlant.
Configuration Management and Server Administration Mohan Bang Endeca Server.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
Technology Overview. Agenda What’s New and Better in Windows Server 2003? Why Upgrade to Windows Server 2003 ?  From Windows NT 4.0  From Windows 2000.
MapReduce April 2012 Extract from various presentations: Sudarshan, Chungnam, Teradata Aster, …
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
Boosting Event Building Performance Using Infiniband FDR for CMS Upgrade Andrew Forrest – CERN (PH/CMD) Technology and Instrumentation in Particle Physics.
第十四章 J2EE 入门 Introduction What is J2EE ?
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. LogKV: Exploiting Key-Value.
MediaGrid Processing Framework 2009 February 19 Jason Danielson.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Project 2003 Presentation Ben Howard 15 th July 2003.
SOA-14: Deploying your SOA Application David Cleary Principal Software Engineer.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
7. CBM collaboration meetingXDAQ evaluation - J.Adamczewski1.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CERN - IT Department CH-1211 Genève 23 Switzerland t High Availability Databases based on Oracle 10g RAC on Linux WLCG Tier2 Tutorials, CERN,
Distributed Handler Architecture (DHArch) Beytullah Yildiz Advisor: Prof. Geoffrey C. Fox.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
Designing a Middleware Server for Abstract Database Connection.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Test and Performance Integration Group.
Implementation of Classifier Tool in Twister Magesh khanna Vadivelu Shivaraman Janakiraman.
A Web Based Job Submission System for a Physics Computing Cluster David Jones IOP Particle Physics 2004 Birmingham 1.
Connected Infrastructure
Netscape Application Server
Integrating HA Legacy Products into OpenSAF based system
About Client Client is a pioneer in industry that provides catastrophe risk modeling, real-time risk exposure and risk management through available live.
LOCO Extract – Transform - Load
Open Source distributed document DB for an enterprise
Connected Infrastructure
Northbound API Dan Shmidt | January 2017
Ebusiness Infrastructure Platform
Lecture 1: Multi-tier Architecture Overview
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
DBOS DecisionBrain Optimization Server
DIBBs Brown Dog BDFiddle
Presentation transcript:

Unclassified// Protected Information// Proprietary Information Building Applications with the MeDICi Integration Framework Scientist/Analyst Miners Plumbers Tool Builders Ian Gorton, Justin Almquist, Jack Chatterton, Adam Wynne

Unclassified// Protected Information// Proprietary Information 2 OutlineOutline What is the MeDICi Integration Framework (MIF)? What can the MIF do for you? How does it do it? What’s available right now and it better be fast … How do I get started?

Unclassified// Protected Information// Proprietary Information 3 What is the MeDICi Integration Framework (MIF)? Java-based integration technology Component-based API for creating analytical pipelines Asynchronous component model for Java or non-Java (eg.exe, C/C++, R, Haskell, etc) codes (flexible) Components can be distributed or run in MIF container (scalable) Component communicate over a variety of protocols (e.g. JMS, Web Services, sockets, etc) (configurable) Non-pipeline architectures supported (e.g. feedback loops, worker pools) Built on robust, industry-tested Java technologies Mule (ESB/SOA compliant) JMS (eg JBoss, ActiveMQ, SonicMQ) ehcache

Unclassified// Protected Information// Proprietary Information 4 Filter Calc1 Proxy Merge Viz Proxy DB Query Format Useful Code Reference Database Results Database Calc1 Data Example analytical pipeline message flow

Unclassified// Protected Information// Proprietary Information 5 What can the MIF do for you? Provide a common API for designing components Make downstream integration straightforward Make iterative development and integration testing easy Make it easy to create applications: using new/legacy components that were not designed to work together that must execute in a distributed environment Support flexible deployments Components are loosely-coupled Components can be configured to suit deployment needs MIF API MIF API MIF API MIF API MIF API New MIF API

Unclassified// Protected Information// Proprietary Information 6 How does it do it? Some components execute in MIF container – Java Some execute outside MIF container – language (who cares) MIF containers can be partitioned/replicated Filter Calc1 Proxy Merge Viz Proxy DB Query Format Useful Code Distributed Component code Configurable protocol

Unclassified// Protected Information// Proprietary Information 7 Scaling MIF applications Filter DB Query Format Useful Code Filter DB Query Format Useful Code Filter DB Query Format Useful Code Replicated MIF Partitioned MIF

Unclassified// Protected Information// Proprietary Information 8 Example: Calculating Functional Overrepresentation Pipeline

Unclassified// Protected Information// Proprietary Information 9 Component Composition in MIF Single Module Simple Pipeline MIF Component

Unclassified// Protected Information// Proprietary Information 10 Chat Traffic Analysis Example A “real-world” example application Analysis of chat messages Utilizes many MIF constructs: Pipeline Components Modules Aggregators Routing Endpoints Package structure

Unclassified// Protected Information// Proprietary Information 11 Chat Traffic Analysis Model

Unclassified// Protected Information// Proprietary Information 12 Chat Example Code - Main Create a pipeline Setup the pipeline endpoints (input & output to application) MifPipeline pipeline = new MifPipeline(); MifEndpoint inEndp = pipeline.addMifEndpoint("inEndp", EndpointType.JMS, "topic/ChatDataTopic"); MifEndpoint outEndp = pipeline.addMifEndpoint("outEndp", EndpointType.STREAM, "console.out?outputMessage=CHAT RESULT: "); Wire the pipeline and start listening for messages Map endps = new HashMap (); endps.put("chat-in", inEndp); endps.put("chat-out", outEndp); pipeline.addMifComponent(new ChatComponent("ChatComponent", endps)); pipeline.start();

Unclassified// Protected Information// Proprietary Information 13 Chat Example Code - Component Get the input/output endpoints Ingest (subset) MifEndpoint inChatEndp = getEndpoint("chat-in"); MifEndpoint outChatEndp = getEndpoint("chat-out"); //construct the ingest module MifEndpoint outIngestKeywordEndp = pipeline.addMifEndpoint("outIngestKeywordEndp", EndpointType.VM, "ingest.keyword.queue"); MifModule ingestModule = new MifModule("IngestModule", Ingest.class.getName(), inChatEndp, outIngestKeywordEndp, null); //add the module to the pipeline pipeline.addMifModule(ingestModule); Keyword MifEndpoint inKeywordEndp = pipeline.addMifEndpoint("inKeywordEndp", EndpointType.VM, "ingest.keyword.queue"); MifEndpoint outKeywordEndp = pipeline.addMifEndpoint("outKeywordEndp", EndpointType.VM, "keyword.queue"); pipeline.addMifModule("KeywordModule", Keyword.class.getName(), inKeywordEndp, outKeywordEndp, null);

Unclassified// Protected Information// Proprietary Information 14 Chat Example Code – Component cntd… Get the input/output endpoints MifEndpoint inKeywordAggEndp = pipeline.addMifEndpoint("inKeywordAggEndp", EndpointType.VM, "keyword.queue"); // create the aggregator module which is just a place holder for the actual aggregator construct. Note that this // is the final module in the component so the outbound endpoint is one specified outside // the component (outChatEndp). MifModule chatAggregateModule = new MifModule("AggregateModule", ChatAggregate.class.getName(), inKeywordAggEndp, outChatEndp, null); // Add the aggregator to the pipeline and assign it to the module itself MifAggregator chatAnalysisAggregator = pipeline.addMifAggregator(new ChatAnalysisAggregator()); chatAggregateModule.setAggregator(chatAnalysisAggregator); // finally, add the module to the pipeline and we're done configuring the component. pipeline.addMifModule(chatAggregateModule);

Unclassified// Protected Information// Proprietary Information 15 Chat Example Code – Processing Module Blackout.java Delegate to “real” implementation  blackout.processContentAnalysis(message); public class Blackout implements MifInOutProcessor { Logger log = Logger.getLogger(Blackout.class); private String pathToBlackoutFile = "blackout.txt";String private static BlackoutId blackout = null; public Blackout() { initBlackout(); } public Serializable listen(Serializable input) {Serializable MapWrapper data = (MapWrapper) input; HashMap message = data.getMap(); HashMap if(blackout != null) { blackout.processContentAnalysis(message); } return new MapWrapper(message); } … … … }

Unclassified// Protected Information// Proprietary Information 16 What’s available right now? The MIF API Used/tested in several DICI projects Documentation Hooks for connecting to our provenance technology …

Unclassified// Protected Information// Proprietary Information 17 Capturing Provenance Metadata about workflows What processes ran What data we used in each step MIF API has extensions to communicate provenance data Asynchronous JMS events Current implementation captures raw in/out data Useful but not scalable Designing a data virtualization layer to support refs from provenance to real data PNNL Provenance Architecture

Unclassified// Protected Information// Proprietary Information 18 Using Provenance

Unclassified// Protected Information// Proprietary Information 19 and it better be fast … And of course scalable So we created a benchmark A friction test A measure of ‘middleware’ overhead

Unclassified// Protected Information// Proprietary Information 20 But you can trust us – we’re scientists 1650 m/sec for 1K messages Scales linearly to 7 servers Peak throughput of 5.4TB/day for 128K messages on 2 servers that rate swamped the cluster switch – hardware limitation! 290 m/sec on 1 server (3.3 TB/day throughput) Grove specs 9 nodes All connected via a single 1Gb switch Hardware 1 Dell 2850 connected to RAID 8 Dell 1850 Dual Intel Xeon processors 3.0 GHz 4GB RAM 1 ~5TB Software Red Hat Enterprise Linux 4 Linux kernel Elsmp SonicMQ 7,5 java version "1.6.0_03"

Unclassified// Protected Information// Proprietary Information 21 How do I get started? We have a wiki - medici.pnl.gov/wiki API docs and installation guide Examples Design and programming guidelines More being added every day :-} And we’re available to help Initial adoption/design Support ‘Consulting’

Unclassified// Protected Information// Proprietary Information 22 And finally - the MeDICi ‘Vision’

Unclassified// Protected Information// Proprietary Information 23 That’s all folks! We believe that the MIF can: Help you deliver high quality solutions to clients Faster, cheaper, especially for ‘integration’ projects Help you easily leverage other internal/external codes in your solutions Give us a ‘lingua franca’ – a step towards wide-scale component reuse But we’re just humble plumbers … We need application partners to deliver to clients You take the kudos, we write invisible plumbing sat in dark corners … We need feedback on how to improve the technology

Unclassified// Protected Information// Proprietary Information 24 Questions?Questions?