Freedom of choice : Codez dans votre langage · 2019-11-15 · xepQuery.setParameter(1,3); //...

Preview:

Citation preview

Freedom of choice : Codez dans votre langage

Guillaume RongierSales Engineer

Introduction

IRIS Data Platform

JDBC/ODBC

XEP

Native API

Hibernate/EntiyFrameWork

PEXEnsemble

Gateway

Native APIGlobals

Native API

Class Method

Routine

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"

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}

}

XEPExtreme Event Processing

XEP

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

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

GatewayJava, .Net, Python

Gateway

Gateway EnsembleTCP/IP

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");}

}}

PEXPolyglot Ensemble Extension

PEX Ensemble

PEX

Json

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

DEMO !

La puissance par la simplicité.

Merci.

GIT

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

https://github.com/grongierisc/PEX

https://github.com/grongierisc/RestToDll

Recommended