Clas12 Reconstruction and Analysis Framework

Slides:



Advertisements
Similar presentations
Service Oriented Architecture
Advertisements

Harithan R velagala CSE 532 TERM PAPER. First what is a service? A service is a reusable component which transforms business data. It is self contained.
Corporate Context: A SOA & BPM Alliance Via Business Data Management Amir Bahmanyari Architect.
1 Introduction to SOA. 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description,
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Thomas Jefferson National Accelerator Facility Page 1 Clas12 Reconstruction and Analysis Framework V. Gyurjyan.
Department of Veterans Affairs VLER Core Vendor Days 1/24, 1/25.
Thomas Jefferson National Accelerator Facility Page 1 Clas12 Reconstruction and Analysis Framework V. Gyurjyan S. Mancilla.
An Introduction to Software Architecture
What is Service Oriented Architecture ? CS409 Application Services Even Semester 2007.
DEVS Namespace for Interoperable DEVS/SOA
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
AUTHORS: MIKE P. PAPAZOGLOU WILLEM-JAN VAN DEN HEUVEL PRESENTED BY: MARGARETA VAMOS Service oriented architectures: approaches, technologies and research.
Thomas Jefferson National Accelerator Facility Page 1 Clas12 Reconstruction and Analysis Framework V. Gyurjyan S. Mancilla.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Service Oriented Architecture + SOAP -Robin John.
V Gyurjyan, D Abbott, J Carbonneau, G Gilfoyle, D Heddle, G Heyes, S Paul, C Timmer, D Weygand V. Gyurjyan JLAB data acquisition and analysis group.
HNDIT Rapid Application Development
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
The Service in Service Oriented Architecture November 2, 2005 Aderbad Tamboli Petris.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Basics of SOA Testing Assurance Services Unit 24 February 2016.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Modeling of Service Oriented Architecture: From Business Process to Service Realization Petr Weiss and Marek Rychlý Brno University of Technology, Faculty.
BLUETOOTH LOW ENERGY Kieon Seong. Introduction  Chap 1. What is Bluetooth Low Energy? Difference Between Classic Bluetooth Device Types Design Goals.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
7. Modular and structured design
John D. McGregor Module 3 Session 2 Architecture Analysis/Design
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Coupling and Cohesion Rajni Bhalla.
Introduction to Load Balancing:
CSE687 – Object Oriented Design
SOA (Service Oriented Architecture)
Chapter 3 Introducing SOA
Web Software Model CS 4640 Programming Languages for Web Applications
Distribution and components
CLARA Based Application Vertical Elasticity
7. Service-oriented Architecture (SOA)
Design and Maintenance of Web Applications in J2EE
Inventory of Distributed Computing Concepts and Web services
موضوع سمینار : نقش مولفه ها در معماری سرویس گرا
Service-centric Software Engineering
Service-centric Software Engineering 1
Lecture 1: Multi-tier Architecture Overview
Learn. Imagine. Build. .NET Conf
D7032E – Software Engineering
Service Oriented Architecture (SOA)
Service Oriented Architecture + SOAP
Units with – James tedder
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Introduction to Data Structure
Clas Reconstruction and Analyses framework
Physics data processing with SOA
Introduction to SOA and Web Services
CLARA . What’s new? CLAS Collaboration Meeting. March 6, 2019
Quality-aware Middleware
Introduction to SOA Part II: SOA in the enterprise
ONAP Architecture Principle Review
Presentation transcript:

Clas12 Reconstruction and Analysis Framework SOA based physics data processing (PDP) V. Gyurjyan†, S. Paul‡, S. Heddle‡ †JLAB data acquisition and analysis group, ‡Christopher Newport University 9/16/2018

PDP environment Large user base Long life time Evolving Deployment Scalability Maintenance Propagation of updates Short response time to bugs Long life time Dynamic user base Aging technologies Author-drop rate Evolving Drop inefficient/unsatisfying software module(s) Integrate new module(s) Diversification

PDP Application basic Requirements Agility Scalability Maintainability Easy deployment Modularity Loose coupling Distribution solution solution Divide and conquer

SOA Defined An architecture (NOT a technology) based on well defined, reusable components: services. Services are loosely coupled. Services with functional context that are agnostic to a composed application logic. Agnostic services participate in multiple algorithmic compositions. Application design based on available services.

Service Atomic unit of an SOA. Encapsulates a logic, or a process. Autonomous Location Transparent. It is defined by the messages it can accept and the responses it can give. Implements standard contract/interface. Composable They can be integrated to provide higher-level, complex services. Reusable Stateless Discoverable Loose coupling between services. 9/16/2018

ClaRA SOA based physics data production application development framework, written in pure Java. Service development environment. Increase intrinsic interoperability of services by standardizing data exchange interface. Complex service composition. Clear separation between PDP application designer and service programmer. Build and run PDP applications without an access to the source code of individual services. Increase federation. Services and ClaRA based applications are united while maintaining their individual autonomy and self governance. Multi-Threaded event processing. Distributed event processing. Ease of application deployment. PDP application diversification and agility.

PDP Application Design Data Centric Approach Focus on data that is moving and transforming in the system. Data flow defines the essential aspect of an application. Data1 S1 Data2 S2 Data3 S3 Object Centric Data Centric Data encapsulation Data exposure Object/method exposure Object/method encapsulation Intermix of data and algorithm Separate data and algorithm Tightly coupled Loosely coupled

ClaRA Design Architecture PCEP Layer Rule invocation Identification Filtration Subscription Orchestration Layer Data flow control Load balancing Error recovery S1 S2 S3 S4 S5 S6 S7 S8 S9 Administration Service Registration Service Data1 S1 Data2 S2 Data3 S3 S S S S S Service layer PDP Service Bus

ClaRA Cloud Platform 1 Platform n Platform 2 Container 1 2 n C++ FE Container Container 1 2 n C++ Service FE Container Container 1 2 n C++ Service Platform 2 FE Container Container 1 2 n C++ Service

ClaRA Containers C++ Service Node/JVM Node/JVM Front-End Container Pub-sub server Registration Discovery Administration Reporting Administration Service deployment Service removal Service recovery Monitoring CPU (Unix only) Service Containers Container Node/JVM C++ Service Node/JVM

ClaRA Java Service Container Core service engine Engine interface Message processing

Service Coupling A functional service context is independent from the outside logic. Contract-To-Functional coupling between services. Service has a name. Service receives data and sends data. Consumer-To-Contract coupling between consumers and services. User/consumer sends data to the named service. Sending the data will trigger execution of the receivers service. Service A

Service Interface Simple, decoupled from technology and implementation details. Input/output data types Object EvIo Primitive types Arrays of primitive types Limited semantic/metadata information Description Author Version

Service abstraction Technology information (hidden) Programmatic logic information (hidden) Functional information (exposed through service contract meta data) Quality of service information (available from the platform registration services)

Service types Entity services Utility services Composite services Generic Highly reusable Utility services Self contained Legacy systems Composite services Primitive compositions Self governing service compositions Complex compositions Controlled aggregate services

Service Composition Primitive composition Complex composition Represents message exchanges across two or more services. Requires composition initiator. Task services are examples of primitive composition. Complex composition Orchestrated task services seen as a single service. Orchestration Layer

Service Discovery Design time Runtime Discover service Registry Discover service Register service Service Provider Service Consumer Exchange messages

Multi-Threading Only one process is active on the ClaRA platform node. Single ClaRA container (JVM) on a node. Service containers run in their own threads. A single service container executes contained service engines in separate threads. A service engine must be thread safe if it is planned to run in a multi-threaded mode. ClaRA based PDP application gets inherent multi-threading and distributed processing, with the relative processing time : ∆TR = (∆TA +∆tn ) / Nc*Nn

Advantages Multi-Threading over Multi-Processing Small memory footprint, less L1/L2 caching, lower probability for missing a cache, less RAM access, better performance. Multi-Processing bookkeeping complexity. Users must keep track of input/output data distribution and data reconsolidation.

Service deployment and monitoring Interfaces

PDP Application Designer Interfaces

Clas12 Reconstruction

Clas12 Track Reconstruction Services, and Tracking Application Design PCEP Layer Front-End Container Pub-sub server Registration Discovery Administration Reporting Other Services Event Service Cluster Finder Region Segment Finder Track Candidate Finder EvIO Hits FST track Segment Finder Forward Kalman Filter BST strip Intersect Finder BST Intercept Link BST Intercept Helix fit Central Kalman Filter Container 1

Service deployment monitoring

Composite Reconstruction Service Multi-Threading

Composite Reconstruction Service Distributed Processing

Conclusion SOA based physics data production application development framework, written in pure Java. Separation between PDP application designer and service programmer. Service development environment. Increase intrinsic interoperability of services by standardizing data exchange interface. Increase federation. Multi-Threaded event processing. Distributed event processing. Ease of application deployment. Increase application diversification and agility. Designed and deployed service based Clas12 full track reconstruction application, showing ~750micor second per event relative processing time on the ClaRA platform using 10 JLAB farm nodes.

Tutorial Building a service

Java public class SqrtEngine implements ICService { public Object executeService(int type,Object input) { if(type==DOUBLE){ return Math.sqrt((Double)input); } else { return null; } public String getName() { return "SqrtByVG"; public String getDescription() { return "Simple sqrt"; public String getAuthor() { return "Vardan Gyurjyan"; public int getInputType() { return DOUBLE; public int getOutputType() { public String getversion() { return "1.0";

#include <string> #include "CService #include <string> #include "CService.h" using namespace std; static string name = ""; static string phost = ""; static string pname = ""; class Average : public CService { public: // constructor Average(string name, string platformHost, string platformName) : CService(name, platformHost, platformName) { }; // service engine Cio* executeService(int type, Cio* o) { if (type == DOUBLE_ARRAY) { Cio* output = new Cio(); double avg; double** data = static_cast<double**> (o->getData()); for (int i = 0; i < o->getLength(); i++) { avg = *data[i] + avg; } avg = avg / o->getLength(); output->setData(&avg); delete(data); return output; ~Average() { C++ int main(int argc, char** argv) { string description = "Simple average calculation"; string author = "gurjyan"; string version = "1.0"; int inputType = DOUBLE_ARRAY; int outputType = DOUBLE; // create an instance Average* a = new Average(name, phost, pname); // register service a->registerService(name, description, author, version, inputType, outputType); while (1) { sleep(1); } return (EXIT_SUCCESS); };

C++ #ifndef _CCONST_H #define _CCONST_H static const int EVIO = 199; static const int OBJECT = 200; static const int BYTE = 201; static const int SHORT = 202; static const int INT = 203; static const int FLOAT = 204; static const int DOUBLE = 205; static const int STRING = 206; static const int BYTE_ARRAY = 207; static const int SHORT_ARRAY = 208; static const int INT_ARRAY = 209; static const int FLOAT_ARRAY = 210; static const int DOUBLE_ARRAY = 211; static const int STRING_ARRAY = 212; static const int OBJECT_ARRAY = 213; #endif /* _CCONST_H */ #ifndef _CIO_H #define _CIO_H class Cio { public: Cio() {}; void* getData(){return data;}; void setData(void* d){data = d;}; int getLength(){return length;}; void setLength(int d){length = d;}; int getEndean(){return indean;}; void setEndean(int d){indean = d;}; int getOffset(){return offset;}; void setOffset(int d){offset = d;}; private: void* data; int length; int indean; int offset; }; #endif /* _CIO_H */

Tutorial Simple deployment

Exercise Node/JVM Node/JVM Front-End Container Pub-sub server Administration Service deployment Service removal Service recovery Monitoring CPU (Unix only) Services AAA Service Container Front-End Container Pub-sub server Registration Discovery Administration Reporting Node/JVM CEP Service Consumer Node/JVM

Data Throughput

Data Rate