High performance reactive applications with Vert.x
Recommend Documents
Aug 2, 2013 - Test results indicate that it is possible to produce HPC with the incorp oration the chemically ... E-mail: [email protected].
iPhone 4S, PowerVR SGX543MP2 GPU (45nm). âConnected on battery connectors. ⢠Provides power to everything. âTwo runs. ⢠Rendering pass. ⢠Idle pass.
Apr 30, 2018 - OpenShift. ⢠Ranger. ⢠Google Cloud ... Docker Datacenter. 18. 30.04.2018 We orchestrate our IT lands
recession. The failure to fuse high per- formance with high integrityâto achieve the foundational goals of the modern
distributed applications on Docker containers, among using well- ... The development of technology is recently being associated with the growth of problem size ...
4. UNIVERSITY OF MASSACHUSETTS, AMHERST ⢠Department of Computer Science. Memory Management 101. ⫠Memory allocators: ⫠Accept requests for ...
is scientific workflow execution, where the job scheduling problem becomes ... According to the National Institute of Standards and Technology (NIST) cloud.
High Performance Sensor Integration in Distributed Sensor Networks Using Mobile Agents ..... Python in-memory objects to and from a single linear string format ...
Apache web server (http://www.apache.org), for example. 3.2 SYSTEM .... monitoring tool consists of the components shown in Fig- ure 3. ⢠Performance Probing ...
project at LANL addresses the issue of designing a soft- ware infrastructure enabling fast and efficient development of multi-component applications, and that of ...
Appropriate tools for analyzing such data may ... widely used software suite GRAPPA, discussing the high-performance ..... Return the best tree found .... F. von Wintzingerode, H. Heuer, H.-P. Malkomes, and H. Backhaus, âMonitoring impact of.
criteria which are necessary to increase the lifetime of the boiler pipes while ..... Louis, MO, 2000, ed., David E. Alman and Joseph W. Newkirk, TMS, 111-. 122.
San Diego, CA 92152-5001. Albert D. Lin ... High-Performance Knowledge-Base (HPKB) Program that ... Section 4 details an application of Bayesian network tech- nology to a ... scientific questions about how computers might learn auto-.
Gabrielle Allen, David Angulo, Ian Foster, Gerd Lanfermann, Chang Liu, Thomas ... Gabrielle Allen, Tom Goodale, Gerd Lanfermann, Thomas Radke, Edward ...
Phillip B. Danielson, Robert J. Shelton, Greggory S. LaBerge1,2. University of Denver .... (Beckman-Coulter Inc., Fullerton, CA, USA) and sequenced on a.
Everest Ong. MATHEMATICS AND COMPUTER SCIENCE ... Version 3 of the Community Climate System Model .... pdf) points to increasing horizontal resolution (currently ...... Edjlali, G., Sussman, A., and Saltz, J. 1997. ... Hill, C., DeLuca, C., Balaji, V
uted infrastructures to deal with complex problems (i.e. grid and cloud comput- ... algorithm to decide the best assigning of jobs to distributed cluster nodes.
past 20 years, polymer-based solution processed bulk het-. 48 erojunction .... that of the best P-OPV devices.4 In the past few years, there. 138 ...... 35 Walker, B.; Tomayo, A. B.; Dang, X. D.; Zalar, P.; Seo, J. H.; Garcia, A.; Tantiwiwat,. 584.
boiler applications, we have identified several characteristics / performance ..... thermally cycled SHS717 wire-arc coatings after impact testing with 480 inch.
... in the skeleton at a low (physiological) level, which leads to free calcium surface that can ...... Kinetics of Perrhenate Uptake and Comparative Biodistribution of.
Downloaded from ... 2008 SAGE Publications Los Angeles, London, New Delhi and Singapore. Figures 1â8 ..... available free online (Yang and Ding 2003).4.
This Application Note explains how to cut development and manufacturing time and costs by combining the Signal. Analyzer
Jun 16, 2009 - gramming interface (API) such as OpenGL, which is a significant .... Development Kit (SDK), supported by the NVIDIA. GeForce 8 Series ... previous graphics APIs. ..... trate the difference between the continuous deterministic.
ARGONNE NATIONAL LABORATORY, ARGONNE, IL 60439. ([email protected]). Abstract. While MPI is the most common mechanism for expressing.
High performance reactive applications with Vert.x
Vert.x 3.0 in development (release towards end of year) ... General purpose JVM application framework ... Ideal for mode
High performance reactive applications with Vert.x Tim Fox Red Hat
@timfox
Bio • • •
Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved with: Vert.x (creator), RabbitMQ, HornetQ (creator), JBoss AS, Mobicents...
@timfox
Current Status
• Vert.x 2.1.2 current production release • Vert.x 3.0 in development (release towards end of year) • This talk will describe features in Vert.x 3.0 – not all available in Vert.x 2.x
@timfox
What is Vert.x? • • • • • • •
General purpose JVM application framework Inspiration from Erlang/OTP and Node.js - Non blocking and asynchronous Polyglot – we don't force you to use one language. Very high performance Simple but not simplistic Lightweight Winner of JAX innovation award 2014 for most innovative Java technology! @timfox
Polyglot Full implementation:
@timfox
Core Asychronous APIs • • • • • • • • •
Core is small and static TCP/SSL clients and servers HTTP/HTTPS clients and servers Websockets, SockJS File system Event bus DNS UDP Distributed Data @timfox
Why Asynchronous? • • • •
Modern servers need to handle high levels of concurrency – web servers, websockets, IoT etc OS threads are still a precious resource Need to service many connections with small number of threads Blocked OS threads means they can't do other work
@timfox
Verticle • Execution unit of Vert.x • Can be written in any language • Single threaded – less scope for race conditions • Verticles communicate by message passing • Hmmm.. sounds like the Actor Model? • Can be run at command line or embedded in an app. • Can be packaged into jars and like in Maven, bintray etc @timfox
Demo @timfox
Event Bus • • • • • •
The nervous system of Vert.x Verticles send messages over the event bus Point to point. Publish/Subscribe. Request/Response Pass strings, buffers, primitive types or JSON Can provide codecs for custom types JSON messages are “convention” for structured data
@timfox
Clustered Event Bus • • • • •
Lightweight peer-to-peer messaging system Connects multiple Vert.x JVM instances Applications are loosely coupled components distributed across your network No monolithic “application server” Micro-services
@timfox
Event bus in the Browser • • • • •
Event bus extends to client side JavaScript too Uses the same API on the client Powerful distributed event space spanning both client and server nodes Ideal for modern “real-time” web applications Use whatever client side toolkit you prefer
@timfox
Demo @timfox
Running verticles
• Verticles can be run directly on command line • Can be trivially embedded • Can be packaged into executable “fat” jars public static void main(String[] args) { Vertx vertx = Vertx.vertx(); vertx.deployVerticle(“java:com.mycompany.MyVerticle”); }
@timfox
Demo @timfox
High Availability
• Automatic failover of deployed modules • Nodes can be logically grouped • Network partition detection (quorum)
@timfox
Demo @timfox
Code Generation
• Manually maintaining N language APIs a lot of work! • Vert.x 3.0 generates these APIs from the Java API • Uses MVEL 2 templates • Constraints on interfaces to make this feasible
@timfox
Rx-ify that!
• Sick of callback hell? • We will use codegen to generate Rx-ified versions of our APIs • RxJava – Reactive Extensions for the JVM
Write apps as set of loosely coupled components that live anywhere where you want – no app server. Polyglot – use the language(s) you want Simple concurrency – wave goodbye to most race conditions Verticles – a library of lego bricks to build apps with High availability Ease of development
@timfox
Project Info • • • • •
Independent Community Project The main project is an Eclipse Foundation project All code is on GitHub 100% open source (ASL 2.0 + Creative Commons) One of the most popular Java projects on GitHub
@timfox
Get involved! • • • • •
Vert.x 3.0 in development now Active and growing community Find us on GitHub Google group: vertx IRC channel: #vertx on freenode.net