Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

201311 - Middleware


Published on

Java Everywhere: Ready for Mobile and Cloud
Talk at LyonJUG in november 2013

Published in: Technology
  • Be the first to comment

  • Be the first to like this

201311 - Middleware

  1. 1. Java Everywhere: Ready for Mobile and Cloud Mark Little JBoss CTO Red Hat, Inc. 1 Tuesday, 26 November 13
  2. 2. Overview •Where are we today and why? •Mobile and Cloud •What does this mean for today’s Java middleware offerings? •The future of Java and standards •Are we there yet? 2 Tuesday, 26 November 13
  3. 3. 30 years ago … •16K was considered a lot of memory •140K floppy disks were the standard •10 mbps ethernet was decadent •8 bit 6502 processor was king for personal computing •Wireless was what people listened to when there was nothing on TV 3 Tuesday, 26 November 13
  4. 4. Today … •512Meg memory is standard on smart phones, 64Gig storage •256Gig USB sticks are the norm •100Gig ethernet at work and 30mbps to the home •64 bit quad core processors in laptops, 1GHz ARM in iPhone •WiFi throughout many cities 4 Tuesday, 26 November 13
  5. 5. The times have changed •There are already more mobile devices than computers •There are 4x more processors on the planet than people •Most have TCP stacks •dsPIC33FJ12GP 16-bit microcontroller has as much horsepower as a VAX (40MIPs), can handle 16+ sensors, and is 1/8 the size of a penny •30 million iPads by end of 2011 •1 in 2 Americans predicated to had smart phones by the end of 2011 compared to 1 in 10 in 2008 5 Tuesday, 26 November 13
  6. 6. The times have changed • • Motorola 68040 (1990) dsPIC33FJ12GP 16-bit microcontroller (2007) 6 Tuesday, 26 November 13
  7. 7. Java in 2000 •J2SE 1.3 and J2EE 1.2 to 1.3 •Typical laptop configuration •1 GHz Pentium III with 512 Meg and 20 Gig disk •Sufficient to run full J2EE stack •Limited mobile devices •HP Jornada 720, 206MHz StrongArm SA1110 32-bit processor, 32 MB SDRAM, Windows CE •ChaiVM JDK 1.2 •Sufficient to run some components of J2EE 7 Tuesday, 26 November 13
  8. 8. 2010 (mobile) versus 2000 8 Tuesday, 26 November 13
  9. 9. Beagleboard 9 Tuesday, 26 November 13
  10. 10. Java in 2013 •Java SE 7 and Java EE 6 •Typical laptop configuration •2.2 GHz Quad Core i7 with 4 Gig and 500 Gig disk (SSD?) •Sufficient to run full EE6 stack (on several different OS concurrently) •Smartphones •Galaxy S4, Quad Core 1.9 GHz Snapdragon 600, 2 Gig RAM, 128 Gig Storage •Android 4.4 •Sufficient to run many (all?) components of EE6 10 Tuesday, 26 November 13
  11. 11. Cloud meets mobile •Public Clouds important •Private Clouds probably more important •Mobility and embedded devices are the real Cloud •Ubiquitous Computing has become a reality •Thin clients are not sufficient •Shannon’s Limit •Overlooked but we all know about it implicitly 11 Tuesday, 26 November 13
  12. 12. Variant of Parkinson’s Law •“Work expands to use the power available” •Basic word processors on first PCs •Games from Pong through Space Invaders to CoD •Mobile devices contain more and more personal data •Disconnected operation is the normal situation 12 Tuesday, 26 November 13
  13. 13. Application realities •Types of application increasing in complexity •Online purchases •Distributed peer-to-peer interactions •More requirements becoming a necessity •Security and identity •High performance, low latency, reliable messaging •Database updates with transactions •Workflows as inter-app interactions increase 13 Tuesday, 26 November 13
  14. 14. Mobility and “enterprise” apps Transactional invocation Ad-hoc auction Peer-based social networking Decentralised calendar Gaming 14 Tuesday, 26 November 13
  15. 15. Mobiles replace consoles? 15 Tuesday, 26 November 13
  16. 16. Mobile Computing Architecture IDE, Designer Debugging Mobile App Platform REST Endpoints Push Notifications Composite Data Data Storage & Sync User Mgmt Analytics Social Integration HTML5 & Native Apps Ruby, Clojure, ... Enterprise App Store, Security... Management/Provisioning 16 Tuesday, 26 November 13 Data Storage Relational & NoSQL Web Services
  17. 17. The future of middleware? •“Middleware is a 20th Century technology” •Heard before: Web Services, Web, even when Java came on the scene •“Mobile needs new frameworks and languages” •“Java” for Android?! •Objective-C for iPhone/Pad?! •“Cloud needs new infrastructures, services, languages” •What about existing applications? •Ruby, Java, PhP, Perl, JavaScript ... Tuesday, 26 November 13 17
  18. 18. “New age” development •New architectures •New implementations •New frameworks •New operating systems •New new new ..? 18 Tuesday, 26 November 13
  19. 19. For whom the bell tolls? Middleware? •Hold on ... haven’t we heard this death knell before? •Remember Web Services/REST/ <blank> as death of middleware? •Let’s be objective •No hidden agendas please 19 Tuesday, 26 November 13
  20. 20. Sounds familiar? •Many commonalities with (Java) middleware •Enterprise requirements for all but trivial apps •Messaging •Transactions •Security •... •Obviously Java is not the only application language •Lots of popular JVM-based languages •Common runtime? 20 Tuesday, 26 November 13
  21. 21. JVM language explosion Before 2010 Today 1 JVM, 1 Language 1 JVM, Over 20 Languages JVM JVM 21 Tuesday, 26 November 13
  22. 22. Enterprise capabilities l Java in 1996 did not possess enterprise features l l Popular JVM languages experiencing similar problem l l J2EE took several years to evolve Lack of enterprise capabilities Two ways to resolve Build from scratch in language l Leverage existing implementations in other languages l 22 Tuesday, 26 November 13
  23. 23. So what does this mean? •Middleware is needed whatever the deployment environment •Mainframes, servers, laptops etc. •Middleware isn’t defined by an implementation •Mobile and Cloud should not be new silos for developers! •It’s inefficient •It’s expensive •It’s time consuming 23 Tuesday, 26 November 13
  24. 24. Java Enterprise Edition 6  Turns out that EE6 has many of the required capabilities     Standards based too! EE6 represents a great evolution for 40 years of work! New capabilities (e.g., JAX-RS, CDI, BeanValidation) Input from wider open source communities and users 24 Tuesday, 26 November 13
  25. 25. How to encourage adoption 25 Tuesday, 26 November 13
  26. 26. “Java EE is too bloated” •Differentiate the standard from implementations! •Bloatware should be a thing of the past •It is possible to be lightweight and enterprise ready 26 Tuesday, 26 November 13
  27. 27. Fruity and mobile •Raspberry Pi •Narayana, Switchyard, Infinispan, AS7, Arquillian •Fuse Fabric •vert.x •Mobile •AS7 •Narayana •jBPM 5 27 Tuesday, 26 November 13
  28. 28. 28 Tuesday, 26 November 13
  29. 29. 29 Tuesday, 26 November 13
  30. 30. Java standards •JCP reinvigorated •ME, SE/EE Executive Committees merging •Significant community involvement (e.g., London JUG) •JDK 1.8 and EE7/EE8 more mobile and cloud friendly •Open source leading the way •Experience important before standardisation 30 Tuesday, 26 November 13
  31. 31. Not all a bed of roses •The next generation of Java middleware needs to address ... •Coordination and consensus •Multi-tenancy •Large-scale data storage and access •Negotiation and enforcement of SLAs •Accountability • fome2011 31 Tuesday, 26 November 13
  32. 32. Richard Hamming, 1968 Turing speech • Whereas Newton could say, "If I have seen a little farther than others, it is because I have stood on the shoulders of giants," I am forced to say, "Today we stand on each other's feet." Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way. 32 Tuesday, 26 November 13