24
Freedom of choice : Codez dans votre langage Guillaume Rongier Sales Engineer

Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Freedom of choice : Codez dans votre langage

Guillaume RongierSales Engineer

Page 2: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Introduction

Page 3: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

IRIS Data Platform

Page 4: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12
Page 5: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12
Page 6: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

JDBC/ODBC

XEP

Native API

Hibernate/EntiyFrameWork

PEXEnsemble

Gateway

Page 7: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Native APIGlobals

Page 8: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Native API

Class Method

Routine

Page 9: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Native API// Java

IRISConnection conn = (IRISConnection) java.sql.DriverManager.getConnection(connStr,user,password);

IRIS dbnative = IRIS.createIRIS(conn);

dbnative.set("Hello","global","sub1");

dbnative.set("World","global","sub2");

global

global("sub2")

"World"

global("sub1")

"Hello"

Page 10: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Native API/ClassMethod

// Java

String className = "User.JavaTest";

String result = IRIS.classMethodString(className,"String","Java Test"));

// ObjectScript

Class User.JavaTest{

ClassMethod String(p1 As %String) As %String{

Quit "Hello "_p1}

}

Page 11: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

XEPExtreme Event Processing

Page 12: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

XEP

Page 13: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12
Page 14: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

XEP// Java

// Connexion

EventPersisterxepPersister = PersisterFactory.createPersister();

xepPersister.connect("127.0.0.1",51773,"User","_SYSTEM","SYS");

// Import flat schema

xepPersister.importSchema("xep.samples.SingleStringSample");

// Event

Event xepEvent = xepPersister.getEvent("xep.samples.SingleStringSample");

SingleStringSample sample = new xep.samples.SingleStringSample("Test");

xepEvent.store(sample);

Page 15: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

XEP Query

String sqlQuery = "SELECT * FROM xep_samples.SingleStringSample WHERE %ID BETWEEN ? AND ?";

EventQuery<SingleStringSample> xepQuery = xepEvent.createQuery(sqlQuery);

xepQuery.setParameter(1,3); // assign value 3 to first SQL parameterxepQuery.setParameter(2,12); // assign value 12 to second SQL parameterxepQuery.execute(); // get resultset for IDs between 3 and 12

Page 16: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

GatewayJava, .Net, Python

Page 17: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Gateway

Gateway EnsembleTCP/IP

Page 18: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

Gateway// ObejctScriptset ..proxyGateway = ##class(%Net.Remote.Object).%New(..GW,"Allergie.Allergie")set tReturn = ..proxyGateway.getReactions(pName)

// C#

using System;using System.Collections.Generic;

namespace Allergie{

public class Allergie{

public List<string> getReactions(String aliment){

return getContainsList(aliment,aliments,"reaction");}

}}

Page 19: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

PEXPolyglot Ensemble Extension

Page 20: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

PEX Ensemble

PEX

Json

Page 21: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

PEXPEX Ensemble

EnsLib.InboundAdapterOnInit()OnTearDown()OnTask()

com.intersystems.enslib.InboundAdapterOnInit()OnTearDown()OnTask()

com.intersystems.enslib.pex.BusinessOperationOnInit()OnTearDown()OnMessage()

com.intersystems.enslib.pex.Message

EnsLib.BusinessOperationOnInit()OnTearDown()OnMessage()

Ens.Request/Ens.Response

com.intersystems.enslib.pex.BusinessProcessOnInit()OnTearDown()OnRequestOnResponseOnComplete

EnsLib.BusinessProcess

Page 22: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

DEMO !

Page 23: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

La puissance par la simplicité.

Merci.

Page 24: Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); // assign value 3 to firstSQL parameter xepQuery.setParameter(2,12); // assign value 12

GIT

https://github.com/grongierisc/YCSB/tree/master/iris

https://github.com/grongierisc/PEX

https://github.com/grongierisc/RestToDll