Www.jdpf.org introducing the Java Data Processing Framework Paolo Ciccarese, PhD On behalf of the JDPF Team Pavia, December 11, 2007.

Slides:



Advertisements
Similar presentations
Tridion 5.3 Templates.
Advertisements

Visual Scripting of XML
Application Graphic design / svetagraphics.com 01 FRAMEWORK data service.
Apache Struts Technology
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Computers Are Your Future
DCS Architecture Bob Krzaczek. Key Design Requirement Distilled from the DCS Mission statement and the results of the Conceptual Design Review (June 1999):
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
ASP.NET Programming with C# and SQL Server First Edition
Apache Struts Technology A MVC Framework for Java Web Applications.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Chapter 3 Software Two major types of software
Course: Introduction to Computers
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
Struts 2.0 an Overview ( )
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Your Interactive Guide to the Digital World Discovering Computers 2012.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Arc: Programming Options Dr Andy Evans. Programming ArcGIS ArcGIS: Most popular commercial GIS. Out of the box functionality good, but occasionally: You.
QCDgrid Technology James Perry, George Beckett, Lorna Smith EPCC, The University Of Edinburgh.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
OSGi.
WorkPlace Pro Utilities.
K. Jamroendararasame*, T. Matsuzaki, T. Suzuki, and T. Tokuda Department of Computer Science, Tokyo Institute of Technology, JAPAN Two Generators of Secure.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
From Creation to Dissemination A Case Study in the Library of Congress’s use Open Source Software DLF Spring Forum Corey Keith
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Winrunner Usage - Best Practices S.A.Christopher.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright, 1996 © Dale Carnegie & Associates, Inc. Presented by Hsiuling Hsieh Christine Liu.
Programming for Geographical Information Analysis: Advanced Skills Lecture 1: Introduction Programming Arc Dr Andy Evans.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
SQL Server User Group Meeting Reporting Services Tips & Tricks Presented by Jason Buck of Custom Business Solutions.
The european ITM Task Force data structure F. Imbeaux.
© 2008 IBM Corporation Snehal S. Antani WebSphere XD Technical Lead SOA Technology Practice, ISSW, IBM WebSphere XD Compute Grid Developing Tooling Story.
MotoHawk™ Components Scalable, Secure, Model-Based Design of Embedded Systems.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
1 MotoHawk Components Scalable, Secure, Model-Based Design of Embedded Systems MotoHawk Training.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Devanshu Bawa Customization Specialist Logo Business Solutions.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
Lecture VIII: Software Architecture
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Module 1: Introduction to Microsoft SQL Server Reporting Services
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
OSSIM Technology Overview Mark Lucas. “Awesome” Open Source Software Image Map (OSSIM)
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Slide 1 © 2016, Lera Technologies. All Rights Reserved. Oracle Data Integrator By Lera Technologies.
Introduction to OOAD and UML
Data Virtualization Tutorial: Introduction to SQL Script
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Functions CIS 40 – Introduction to Programming in Python
Web Development Using ASP .NET
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Plug-In Architecture Pattern
Presentation transcript:

introducing the Java Data Processing Framework Paolo Ciccarese, PhD On behalf of the JDPF Team Pavia, December 11, 2007

Some history 2003 the first idea [for performing temporal abstractions] 2004 the pipeline-based architecture and a web-based user interface 2005 a rough component-based implementation 2006 presented in AMIA 2007 the OSGI-based open source implementation

The team Bruno Farina e Paolo Mauri (~ 16 man-months) Paolo Ciccarese (since 2003) Ezio Caffi (Help with maven and OSGI)

Some simple tasks Reduce sets of pictures for publishing them online Clean some data erasing the outliers Read some financial data from the internet and perform some temporal analysis …

Usage of different tools... even if: It is usually necessary to run several tools as it is difficult to find tools that can be applied to really different problems (ex: data analysis and image processing) It is hard to organize multiple data processing to start automatically (batch mode) Some of the good tools are not running in server mode Some tools are not free

Or write some code... even if: It is expensive to re-write complex algorithms It is difficult to reuse some already written code as a whole (  pipeline) It is difficult to foster reuse without a common framework (  jdpf)

Java Data Processing Framework It helps you in the definition, generation and execution of standard and custom data processing procedures. It has been designed to be modular and extendable It promotes code sharing across the community It is open source

Pipeline Filters: They give an output defined within the same metric space of the input (same data types for input and output). Examples are blocks embedding outliers filtering in a time series as well as noise reduction algorithm for images; Transformers: Their output metric space is different from the input one (different data types for input and output). Examples can be a mechanism for qualitative abstraction performing quantitative data mapping into symbolic values as well as algorithms for the transformation at a different color depth of an image.

Net Splits accept a single data stream and give two streams as output. Aggregators accept as input the data coming from two different pipelines and give as output a single data stream derived from the application of an operator tuned, as usual, through a set of parameters

Component Generators provide the input to the pipeline out of binary data (xml, images, text, html, zip) or other kind of sources such as specific tables in a relational database; Serializers represent the end of the pipeline and transform the pipeline content into data in different binary formats (xml, images, text, html, zip, pdf) or into tables of a relational database; Is a pipeline/net with:

Example (1) Reading a file of numeric data and filter outliers (with or without clipping) taking care of unit of measures

Example (2) Transformation of one or more color images into grayscale

Example (3) Transformation of one or more color images into grayscale and generation of images histograms

Petri-Nets architecture Transition Place Token Arc Start Place End Place

Component and Parameterization XML Parameters Component XML Parameters + Task Validation: - of the component topology - of the parameters according to the component

Component Execution Generator Split Filter Serializer Empty token on the start place to fire the generator transition Data are embedded in tokens through a specific data type

Summarizing Every block in the component implements an algorithm that works on data The user can reuse blocks available in the library or develop his own solution (extending the library) focusing on the algorithm implementation

JDPF customers Users that simply want to use what is available without any coding effort and through the visual tools Developers that can develop new blocks with the help of the JDPF framework which limits the scope of the effort

JDPF Visual Tool [1] Monitor dei task Console Editor testuale

JDPF Visual Tool [2] Click for watching the demos

Under the cover JDPF is a plugin-based architecture It is build on OSGi (Open Service Gatway initiative) OSGi technology provides a service- oriented, component-based environment for developers and offers standardized ways to manage the software lifecycle.

OSGi A framework for building application out of pieces of software (bundles) that collaborate for reaching a goal Bundles life cycle managed on the same JVM (security, dependencies…)

JDPF and OSGi Every “piece” of JDPF is a boundle The systems bundles are taking care of the management of the infrastructure The plugins bundles are the blocks embedding business logic (algorithms) and the data types

Creating a bundle... Create an OSGi bundle (we are going to provide some scripts for making this process faster, easier and safer) Create the bundle manifest, including: –dependencies –bundle specific parameters –bundle category –allowed input/output data types

A snapshot of a manifest … Bundle-Category: generator Input-DataType: none Output-DataType: org.jdpf.plugins.datatypes.basic.MeasureSeries Param-TimestampFormat: string optional; Param-DataFormat: string;{int,long,float,double} Param-UnitOfMeasure: string optional; Param-InputFile: uri Param-TokensSeparator: string optional;

Algorithm implementation Now has to be written in Java (but we want to be able to run modules written in other languages) The new block has to extend an abstract implementation of the desired type (it provides logging as well as other useful services that don’t have to be re-written Requires to implement the setters for all the parameters defined in the manifest (setParameter(String type)…)

Code Example private URI _inputFile; public Token process(List list) throws PluginException{ MeasureSeries iSeries = new MeasureSeries(); … algorithm implementation … return setOutputToken(iSeries); } public void setInputFile(URI fileName) { _inputFile = fileName; }

Thank you To the team and the audience Published on 1st December 2007 Distributed with Apache Software License v. 2.0 Collaborations…