centre de calcul de l’institut national de physique nucléaire et de physique des particules...

25
Centre de Calcul de l’Institut National de Physique Nucléaire et de Physique des Particules Nothing is lost, nothing is created, everything is <xml:tranformed>

Upload: harry-boyd

Post on 24-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Centre de Calcul de l’Institut National de Physique Nucléaire et de Physique des Particules

Nothing is lost, nothing is created, everything is

<xml:tranformed>

2

What is Lavoisier ?

XML

XML

XMLXML

XML

XML

XML

XML data view

plugin

Access: RESTful, web browser or CLI

3

What is Lavoisier ?

Access: RESTful, web browser or CLI

4

What is a data view ?

transformationtechnology

input format output format

cache

validation

authentication

≈ 100 plugins

5

What is a data view ?

merg

e

rem

ove

repla

ce

chart

P D

F

transformation

J S

O N

J M

X

C L

I

S F

T P

Y A

M L

J S

O N

L D

I F

technology

input format

sele

ct

inse

rt

C S

V

X M

L

H T

T P

L D

A P

output format

6

Month,Sales,Profit

March,28,89

April,432,1587

May,267,529

June,622,2103…

CSV

What is a data view ?

merg

e

rem

ove

repla

ce

chart

P D

F

J S

O N

sele

ct

inse

rtY A

M L

J S

O N

L D

I F

C S

V

X M

L

J M

X

C L

I

S F

T P

H T

T P

L D

A P

transformationtechnology

input format output format

Example : download CSV data, extract column "Profit" and render to JSON

JSON

7

What is a data view ?

{ "entries": [ { "entry": [ "89", "1587",

JSONMonth,Sales,Profit

March,28,89

April,432,1587

May,267,529

June,622,2103…

CSV

J S

O N

sele

ct

C S

V

H T

T P

<e>529</e>

<row><column label="Month">May</column> <column label="Sales">267</column> <column label="Profit">529</column></row>

May,267,529 "529",May,267,529 May,267,529

<row><column label="Month">May</column> <column label="Sales">267</column> <column label="Profit">529</column></row>

<e>529</e>

transformationtechnology

input format output format

Example : download CSV data, extract column "Profit" and render to JSON

8

J S O N

select

C S V

H T T P

Web console

Example : download CSV data, extract column "Profit" and render to JSON

9

Generated

Rendering

Example : download CSV data, extract column "Profit" and render to JSON

10

HTML template engine

Example : download CSV data, extract column "Profit" and render to JSON

Generated

HTML Template

• XML/XPath support• Client-side execution• "Natural templating"• Inheritance

11

Data aggregation

insert

J S O N

String

J S O N

select

C S V

H T T P

{"invoices":["128","243","187","306","247","203"]}

JSON

Month;Sales;ProfitMarch;28;89April;432;1587…

CSV

Example : aggregate profit with number of invoices for each month

12

Example : aggregate profit with number of invoices for each month

Data aggregation

insert

J S O N

String

13

Previous example◦ helps to understand how to use Lavoisier◦ but Lavoisier is overkill for this !

A real use-case : the EGI Operations Portal◦ 15 heterogeneous data sources◦ 100 data views◦ 2000 users

A real example :

CODDashboard(Ops DB)

Helpdesk(GGUS)

Downtimes(GOC-DB)

Av/Re data(My EGI)

VOIdCards(Ops DB)

EGI SSO

14

A real example :

CODDashboard(Ops DB)

Helpdesk(GGUS)

Downtimes(GOC-DB)

Av/Re data(My EGI)

VOIdCards(Ops DB)

EGI SSO

15

A real example :

CODDashboard(Ops DB)

Helpdesk(GGUS)

Downtimes(GOC-DB)

Av/Re data(My EGI)

VOIdCards(Ops DB)

EGI SSO

16

A real example :

CODDashboard(Ops DB)

Helpdesk(GGUS)

Downtimes(GOC-DB)

Av/Re data(My EGI)

VOIdCards(Ops DB)

EGI SSO

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

17

Ensured by the configuration language technology/format integration

◦ view = chain of plugins

business code◦ application = graph of data views

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

XML

XML

XML

18

Single language (XPath) to :

Define authorization rules◦ user()='127.0.0.1'

Set parameter dynamically◦ concat('http://host:8080/lavoisier/', $file)

Select parts of the data view◦ //row/column[@label='Profit']/text()

Interact with◦ user request : arguments(), path()◦ environment : property(),

document()◦ views : view(), match()

Configure data rendering◦ row/columns◦ HTML template

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

sele

ctH

TTP

19

Plugins process streams◦ of bytes◦ of XML events

XPath optimizer◦ avoid building big data structures

/absolute/xpath is transformed to a set of instructions processing the stream

./relative/xpath is evaluated on small data structures

◦ detect factorizable function calls

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

data size

memoryusage

Transparent to developers

20

Configure the cache mechanism:

Per data view◦ choose cache plugin◦ combine refresh triggering rules

when view is notified by user when dependency is refreshed when time is elapsed …

According to the constrains of◦ data : size, time-to-live, dependencies◦ technology : latency, throughput, availability◦ users: patience, access frequency

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

Transparent to end-users

21

Web console features

Monitoring◦ Views build status, statistics…

Configuration◦ Data views inter-dependencies◦ XPath expression optimizations

Environment◦ OS, JVM, service…

Debugging◦ Breakpoint on a XML stream◦ Breakpoint on a plugins chain◦ Skeleton of a data view

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

Developed with Lavoisier language

22

Define security role per data view

Authentication plugins◦ Chainable◦ Extensible

CAS, password, X509, IP, OAuth

◦ Based on JAAS standard

Authorization rules (XPath)◦ For each authentication plugin◦ Depending on argument value

view('authZ')/*/*[@user=user() and @key=$arg]

Lavoisier advantages

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

23

Conclusion

• Modularity• Single languageMaintainability

• Memory usage• LatencyPerformance

• Robustness• MonitorabilityAvailability

• Authentication• AuthorizationSecurity

Lavoisier does all this for you…

…enabling you to focus on business code !

24

New plugins On-the-fly partial reconfiguration of the framework GUI for building your own data aggregation application

Perspectives

25

Thank you !