23
Cloud Development with Dirigible in the Eyes of a Java- saurus Vladimir Pavlov // SAP

Cloud Development with Dirigible in the Eyes of a Java-saurus

Embed Size (px)

Citation preview

Page 1: Cloud Development with Dirigible in the Eyes of a Java-saurus

Cloud Development with Dirigible in the Eyes of a Java-saurus

Vladimir Pavlov // SAP

Page 2: Cloud Development with Dirigible in the Eyes of a Java-saurus

Who Am I?

Development Architect 15+ years of experience with

enterprise Java Java EE fan & EG alumnus @bgjug member Conference speaker and mentor

@vladopavlov

2

Page 3: Cloud Development with Dirigible in the Eyes of a Java-saurus

What Am I Going to Talk About?

What is Dirigible Goals and driving forces Technical look and comparisons Demo Q & A

3

Page 4: Cloud Development with Dirigible in the Eyes of a Java-saurus

What Am I Going to Talk About?4

Page 5: Cloud Development with Dirigible in the Eyes of a Java-saurus

What is Dirigible?

Part of Eclipse Cloud Development (ECD) Cloud development platform for dynamic

applications Provides both development tools and

runtime environment Focus on JavaScript support client- and

server-side

dirigible.io

5

Page 6: Cloud Development with Dirigible in the Eyes of a Java-saurus

What Can You Do with It?

Database management Scripting services Web content Shell commands Flows & Jobs Wiki documents Lifecycle management Monitoring & Logs Debugging

6

Page 7: Cloud Development with Dirigible in the Eyes of a Java-saurus

What Can You Do with It?

End-to-end coverage for Vertical Scenarios

7

Page 8: Cloud Development with Dirigible in the Eyes of a Java-saurus

Dynamic Applications?

Content-centric Built for change Custom code/extensions tends to overgrow original

app Business need for easy and frequent

customization/change/extensibility

8

Page 9: Cloud Development with Dirigible in the Eyes of a Java-saurus

The Ultimate Goal

Enable the shortest development turnaround time

by employing

In-system programming model RAD techniques

9

Page 10: Cloud Development with Dirigible in the Eyes of a Java-saurus

In-System Programming Model

Working on a live system Access to live data Immediate changes effect

Java: Separate dev (IDE) and runtime (Server) Explicit deploy step

10

Page 11: Cloud Development with Dirigible in the Eyes of a Java-saurus

Rapid Application Development

Fast prototyping/scaffolding Templates, wizards, reusable artifacts Enforcing best practices

Java: Few good examples in this area – e.g. JBoss Forge

11

Page 12: Cloud Development with Dirigible in the Eyes of a Java-saurus

Injected API

Predefined objects or platform services wrappers $.getDatasource(), $.getRequest(), $.getResponse(),

$.getMessagingService()

Utilities, ExecutionContext $.getIOUtils(), $.getHttpUtils(),

$.getExecutionContext()

Extensible set e.g. based on underlying cloud platform

Java: @Inject, @Resource, @EJB …

12

Page 13: Cloud Development with Dirigible in the Eyes of a Java-saurus

Application Life-Cycle Management

FS-like repository for user workspaces, project artifacts/metadata

Easy export + import into another running instance

Java: JAR/WAR/EAR archives Import = deploy, export = ?

13

Page 14: Cloud Development with Dirigible in the Eyes of a Java-saurus

Dependency Management

No silver bullet Dirigible leverages non-strict dependencies a.k.a.

“global installs” by using CommonJS

Java: Strict dependency management during compilation Non-strict during runtime (excluding OSGi)

14

Page 15: Cloud Development with Dirigible in the Eyes of a Java-saurus

Extensions

First-class project citizens Bilateral JSON-formatted declarations No strict contract for the actual interface types (name-

bound)

Java: plugin.xml, META-INF/services, WSDL Cons: changing contracts is usually slow

15

Page 16: Cloud Development with Dirigible in the Eyes of a Java-saurus

Security

Dirigible relies on the underlying application server's capabilities for this task

Resource/roles configuration in JSON format

Java: Security constraints in annotations/web.xml

16

Page 17: Cloud Development with Dirigible in the Eyes of a Java-saurus

Microservices vs. Monoliths

It’s your choice! Identical instances can host different apps/services

which can be scaled out separately but still operated identically

Java: Similar – e.g. Tomcat server(s), uberjars, MicroProfile…

17

Page 18: Cloud Development with Dirigible in the Eyes of a Java-saurus

Debugging

Dirigible leverages debugging support in Rhino Simple callbacks to debug “client” Results propagated to RAP-based UI

Java: Sophisticated tools, suspending the thread, etc.

18

Page 19: Cloud Development with Dirigible in the Eyes of a Java-saurus

Mobile Development

True native mobile app development in JavaScript using Tabris.js

Mobile-friendly IDE: develop from mobile for mobile

Java: Only Android?

19

Page 20: Cloud Development with Dirigible in the Eyes of a Java-saurus

DEMO

20

Page 21: Cloud Development with Dirigible in the Eyes of a Java-saurus

Conclusion

Dirigible platform runs on standard Java EE stack – e.g. Apache Tomcat

Utilizes all benefits of such a powerful and mature environment

Adds dynamic alteration capabilities – extremely valuable for business services customization/extension

Java (EE) for core/system services + JavaScript/Dirigible for business services can be a very useful and productive combination

21

Page 22: Cloud Development with Dirigible in the Eyes of a Java-saurus

Q & A

22

Page 23: Cloud Development with Dirigible in the Eyes of a Java-saurus

Thank You!

@vladopavlovwww.slideshare.net/vkpavlov