SlideShare a Scribd company logo
1 of 87
Download to read offline
Play!
              @ikeike443

              2011/10/08   Playframework   In Tokyo




11   10   8
11   10   8
@ikeike443




              Jenkins

              Playframework


11   10   8
Play!
              @ikeike443

              2011/10/08   Playframework   In Tokyo




11   10   8
Play
              Play




              Play2.0   http://www.flickr.com/photos/paulwhaleyphotography/133897626/




11   10   8
Play           ...
              Java      LL         Web

              Servlet        API              FW

              XML                              FW

                               FW

                                         FW



11   10   8
11   10   8
Play!




11   10   8
Play               Java
                     (Java EE)          W3C
                World Wide Web




11   10   8
public class HelloServlet extends HttpServlet {
               public void doGet (HttpServletRequest req, HttpServletResponse res) {
                      PrintWriter out = res.getWriter();
                      out.println("Hello, world!");
                      out.close();
                  }
              }

              <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
               <servlet>
                <servlet-name>hello</servlet-name>
                <servlet-class>test.HelloServlet</servlet-class>
               </servlet>
               <servlet-mapping>
                <servlet-name>hello</servlet-name>
                <url-pattern>/hello</url-pattern>
               </servlet-mapping>
              </web-app>




11   10   8
public class HelloServlet extends HttpServlet {
               public void doGet (HttpServletRequest req, HttpServletResponse res) {
                      PrintWriter out = res.getWriter();
                      out.println("Hello, world!");
                      out.close();
                  }
              }

              <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
               <servlet>
                <servlet-name>hello</servlet-name>
                <servlet-class>test.HelloServlet</servlet-class>
               </servlet>
               <servlet-mapping>
                <servlet-name>hello</servlet-name>
                <url-pattern>/hello</url-pattern>
               </servlet-mapping>
              </web-app>




11   10   8
public class Hello extends Controller {
                  public static void index() {
                      render(“"Hello, world!"”);
                  }
              }




11   10   8
public class Hello extends Controller {
                  public static void index() {
                      render(“"Hello, world!"”);
                  }
              }




11   10   8
Java web
                      Java
              Play!




11   10   8
11   10   8
11   10   8
11   10   8
DB



              REST        API

              10




11   10   8
11   10   8
11   10   8
Servlet
              XML




11   10   8
Play!




11   10   8
Play
              Play




              Play2.0   http://www.flickr.com/photos/flotaz/2471940678/




11   10   8
HTTP




              I/O




11   10   8
Servlet   HTTP

              JPA




11   10   8
HTTP

                    XML

              URL




              FW          Javassist   Byte code enhance




11   10   8
HTTP
                           Servlet API   Strtus      Java   Web
                                             HTTP           Java
               API



              Web                                   HTTP


                    Play          Java web




11   10   8
HTTP
                           Servlet API   Strtus      Java   Web
                                             HTTP           Java
               API



              Web                                   HTTP


                    Play          Java web




11   10   8
Play                  FW

              Play    HttpSession

              Controller#session               Cookie

                                   Memcached




11   10   8
Java Web
                                                                                   :


                              ?

              Share Nothing              PHP              Ruby on Rails   Django
                      Web
                                  Ajax



                  Web                               HTTP




11   10   8
Java Web
                                                                                   :


                              ?

              Share Nothing              PHP              Ruby on Rails   Django
                      Web
                                  Ajax



                  Web                               HTTP




11   10   8
I/O




11   10   8
11   10   8
Netty             I/O

              commons-javaflow
              Java

              WebSocket




11   10   8
public static void generatePDF(Long reportId) {
                Promise<InputStream> pdf = new ReportAsPDFJob(report).now();
                InputStream pdfStream = await(pdf);
                renderBinary(pdfStream);
              }




              public static void generateLargeCSV() {
                CSVGenerator generator = new CSVGenerator();
                response.contentType = "text/csv";
                while(generator.hasMoreData()) {
                     String someCsvData = await(generator.nextDataChunk());
                     response.writeChunk(someCsvData);
                }
              }




11   10   8
I/O   node.js

                                                 ... Groovy...




                        http://www.subbu.org/blog/2011/03/nodejs-vs-play-for-front-end-apps


11   10   8
11   10   8
play.lib.F




11   10   8
public class AsyncTest extends Controller
      {
        public static void gotchas()
        {
          params.put("foo", "bar");
          renderArgs.put("foo", "bar");
          final String foo = "bar";
          F.Promise<WS.HttpResponse> remoteCall1 = WS.url("http://some/data/1").getAsync();
          F.Promise<WS.HttpResponse> remoteCall2 = WS.url("http://some/data/2").getAsync();
          F.Promise<WS.HttpResponse> remoteCall3 = WS.url("http://some/data/3").getAsync();
       
          F.Promise<List<WS.HttpResponse>> promises =
                                 F.Promise.waitAll(remoteCall1, remoteCall2, remoteCall3);
          await(promises, new F.Action<List<WS.HttpResponse>>() // request suspended here
          {
            public void invoke(List<WS.HttpResponse> httpResponses)
            {
              System.out.println(params.get("foo"));
              System.out.println(renderArgs.get("foo"));
              System.out.println(foo);
              render(httpResponses);
            }
          });
          System.out.println("End");              // never called
        }
      }
11   10   8
public static void echo() {
            while(inbound.isOpen()) {
                WebSocketEvent e = await(inbound.nextEvent());
                  for(String quit: TextFrame.and(Equals("quit")).match(e)) {
                     outbound.send("Bye!");
                     disconnect();
                  }
                  for(String msg: TextFrame.match(e)) {
                     outbound.send("Echo: %s", frame.textData);
                  }
                  for(WebSocketClose closed: SocketClosed.match(e)) {
                     Logger.info("Socket closed!");
                  }
              }
          }

11   10   8
11   10   8
JavaEE

              …




11   10   8
War
              war




11   10   8
11   10   8
HTTP




              I/O




11   10   8
Play
              Play




              Play2.0
                        http://www.flickr.com/photos/dbrekke/276119940/




11   10   8
11   10   8
11   10   8
TypeSafe




11   10   8
https://twitter.com/#!/jboner/status/69394808044654593




11   10   8
11   10   8
Digg




11   10   8
http://about.digg.com/blog/awacs




11   10   8
11   10   8
gurdian.co.uk




11   10   8
http://www.infoq.com/articles/guardian_scala




11   10   8
11   10   8
Klout




11   10   8
11   10   8
Play+Scala
              @_feripera
11   10   8
@_felipera




11   10   8
@_felipera
              Accenture (US)
              Verizon
              Fannie Mae
              Freddie Mac
              Foreclosure.com




11   10   8
@_felipera
              Accenture (US)
              Verizon
              Fannie Mae
                                 Accenture, Verizon, Fannie Mae, Freddie
              Freddie Mac        Mac, Foreclosure.com. Other places I
                                 deployed Play at.
              Foreclosure.com




11   10   8
@_felipera
                                 Play, Scala, RabbitMQ, ElasticSearch,
              Accenture (US)     Hadoop, HBase, Oozie, Flume, etc are all
                                 part of Klout's stack.
              Verizon
              Fannie Mae
                                 Accenture, Verizon, Fannie Mae, Freddie
              Freddie Mac        Mac, Foreclosure.com. Other places I
                                 deployed Play at.
              Foreclosure.com




11   10   8
Play
              Play




              Play2.0   http://www.flickr.com/photos/lwr/168151244/




11   10   8
Scala              Coffeescript

              Akka               Elastic Search (lucene)

              MongoDB, Morphia   VHost

              Redis                   PaaS

              SASS, SCSS




11   10   8
Scala, Akka

                         Scala

                 Play!

              Akka               (Akka support




11   10   8
MongoDB, Redis

              KVS       MongoDB, Redis




              MongoDB       Morphia




11   10   8
SASS, SCSS


              CSS           SASS, SCSS



              Play   SASS




11   10   8
CoffeeScript


                     Javascript

                                  Javascript

               Rails3.1




11   10   8
Elastic Search (lucene)

               lucene



                        Simple search   lucene




11   10   8
VHost

              Play Virtual Host



                                  SaaS




11   10   8
Play
              Play




              Play2.0   http://www.flickr.com/photos/jim_rafferty_uk/365164119/




11   10   8
2




              PaaS




11   10   8
Unix, Linux, MacOSX, Windows

              JDK5      + Python2.6

                  Win         JDK        OK




11   10   8
PaaS
              Heroku
              PlayApps.net
              Cloudbees
              Cloudfoundry

              Google AppEngine
              DotCloud

              Amazon Beanstalk




11   10   8
PaaS
              Heroku
              PlayApps.net
              Cloudbees
              Cloudfoundry

              Google AppEngine
              DotCloud

              Amazon Beanstalk




11   10   8
PaaS
              Heroku
              PlayApps.net
              Cloudbees
              Cloudfoundry

              Google AppEngine
              DotCloud

              Amazon Beanstalk




11   10   8
PaaS
              Heroku
              PlayApps.net
              Cloudbees
              Cloudfoundry

              Google AppEngine
                                 war
              DotCloud

              Amazon Beanstalk




11   10   8
PaaS
              Heroku
              PlayApps.net
              Cloudbees
              Cloudfoundry

              Google AppEngine
                                 war
              DotCloud

              Amazon Beanstalk




11   10   8
1.x




              Play!



                      http://www.flickr.com/photos/funkimag/5397995349/
11   10   8
Play
              Play




              Play2.0   http://www.flickr.com/photos/alphadesigner/3833696256/




11   10   8
11   10   8
Scala

              SBT     Python

                               Scala Groovy

              Akka




11   10   8
Preview




11   10   8
…
              Play!




11   10   8
11   10   8

More Related Content

What's hot

Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Julian Robichaux
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
Highlights from Java 10, 11 and 12 and Future of Java at JUG Koblenz
Highlights from Java 10, 11 and 12 and Future of Java at JUG KoblenzHighlights from Java 10, 11 and 12 and Future of Java at JUG Koblenz
Highlights from Java 10, 11 and 12 and Future of Java at JUG KoblenzVadym Kazulkin
 
Tomcat New Evolution
Tomcat New EvolutionTomcat New Evolution
Tomcat New EvolutionAllan Huang
 
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpath
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpathLausanneJUG 2017 - Jigsaw est prêt à tuer le classpath
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpathAlexis Hassler
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clusteringgouthamrv
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzJBug Italy
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Managing an OSGi Framework with Apache Felix Web Console
Managing an OSGi Framework with  Apache Felix Web ConsoleManaging an OSGi Framework with  Apache Felix Web Console
Managing an OSGi Framework with Apache Felix Web ConsoleFelix Meschberger
 
Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009JavaEE Trainers
 
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathLyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathAlexis Hassler
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RaceBaruch Sadogursky
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 

What's hot (20)

Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
Highlights from Java 10, 11 and 12 and Future of Java at JUG Koblenz
Highlights from Java 10, 11 and 12 and Future of Java at JUG KoblenzHighlights from Java 10, 11 and 12 and Future of Java at JUG Koblenz
Highlights from Java 10, 11 and 12 and Future of Java at JUG Koblenz
 
What's new in Java 11
What's new in Java 11What's new in Java 11
What's new in Java 11
 
Tomcat New Evolution
Tomcat New EvolutionTomcat New Evolution
Tomcat New Evolution
 
Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpath
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpathLausanneJUG 2017 - Jigsaw est prêt à tuer le classpath
LausanneJUG 2017 - Jigsaw est prêt à tuer le classpath
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clustering
 
Web Space10 Overview
Web Space10 OverviewWeb Space10 Overview
Web Space10 Overview
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Managing an OSGi Framework with Apache Felix Web Console
Managing an OSGi Framework with  Apache Felix Web ConsoleManaging an OSGi Framework with  Apache Felix Web Console
Managing an OSGi Framework with Apache Felix Web Console
 
Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009Introduction to java servlet 3.0 api javaone 2009
Introduction to java servlet 3.0 api javaone 2009
 
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpathLyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
 
GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
GlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium ParisGlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium Paris
 

Viewers also liked

Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A Service
Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A ServiceScala, Apache Spark, The PlayFramework and Docker in IBM Platform As A Service
Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A ServiceRomeo Kienzler
 
Overview of DataStax OpsCenter
Overview of DataStax OpsCenterOverview of DataStax OpsCenter
Overview of DataStax OpsCenterDataStax
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCITakafumi Ikeda
 
Herokuの多言語対応とPlay!
Herokuの多言語対応とPlay!Herokuの多言語対応とPlay!
Herokuの多言語対応とPlay!Mitch Okamoto
 
5分で説明する Play! scala
5分で説明する Play! scala5分で説明する Play! scala
5分で説明する Play! scalamasahitojp
 
2011/10/08_Playframework_GAE_to_Heroku
2011/10/08_Playframework_GAE_to_Heroku2011/10/08_Playframework_GAE_to_Heroku
2011/10/08_Playframework_GAE_to_HerokuTakeshi Hagikura
 
Play勉強会 in tokyo
Play勉強会 in tokyoPlay勉強会 in tokyo
Play勉強会 in tokyoDaisuke Kasuya
 
playdocjaのこれまでとこれから
playdocjaのこれまでとこれからplaydocjaのこれまでとこれから
playdocjaのこれまでとこれからyuichiro umezawa
 
Intoduction on Playframework
Intoduction on PlayframeworkIntoduction on Playframework
Intoduction on PlayframeworkKnoldus Inc.
 
Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Kazuhiro Hara
 
Alzforum webinar m heneka 20 03 2013
Alzforum webinar m heneka 20 03 2013Alzforum webinar m heneka 20 03 2013
Alzforum webinar m heneka 20 03 2013Alzforum
 
World Alzheimer Report 2016: Improving healthcare for people living with deme...
World Alzheimer Report 2016: Improving healthcare for people living with deme...World Alzheimer Report 2016: Improving healthcare for people living with deme...
World Alzheimer Report 2016: Improving healthcare for people living with deme...Adelina Comas-Herrera
 
BIG DATA サービス と ツール
BIG DATA サービス と ツールBIG DATA サービス と ツール
BIG DATA サービス と ツールNgoc Dao
 
Apache Cassandra overview
Apache Cassandra overviewApache Cassandra overview
Apache Cassandra overviewElifTech
 
Using docker for data science - part 2
Using docker for data science - part 2Using docker for data science - part 2
Using docker for data science - part 2Calvin Giles
 
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Roberto Hashioka
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...DataStax Academy
 
Growing the Mesos Ecosystem
Growing the Mesos EcosystemGrowing the Mesos Ecosystem
Growing the Mesos EcosystemMesosphere Inc.
 
Time Series Processing with Solr and Spark
Time Series Processing with Solr and SparkTime Series Processing with Solr and Spark
Time Series Processing with Solr and SparkJosef Adersberger
 

Viewers also liked (20)

Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A Service
Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A ServiceScala, Apache Spark, The PlayFramework and Docker in IBM Platform As A Service
Scala, Apache Spark, The PlayFramework and Docker in IBM Platform As A Service
 
Overview of DataStax OpsCenter
Overview of DataStax OpsCenterOverview of DataStax OpsCenter
Overview of DataStax OpsCenter
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
 
Herokuの多言語対応とPlay!
Herokuの多言語対応とPlay!Herokuの多言語対応とPlay!
Herokuの多言語対応とPlay!
 
5分で説明する Play! scala
5分で説明する Play! scala5分で説明する Play! scala
5分で説明する Play! scala
 
2011/10/08_Playframework_GAE_to_Heroku
2011/10/08_Playframework_GAE_to_Heroku2011/10/08_Playframework_GAE_to_Heroku
2011/10/08_Playframework_GAE_to_Heroku
 
Play勉強会 in tokyo
Play勉強会 in tokyoPlay勉強会 in tokyo
Play勉強会 in tokyo
 
playdocjaのこれまでとこれから
playdocjaのこれまでとこれからplaydocjaのこれまでとこれから
playdocjaのこれまでとこれから
 
Intoduction on Playframework
Intoduction on PlayframeworkIntoduction on Playframework
Intoduction on Playframework
 
Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話
 
Alzforum webinar m heneka 20 03 2013
Alzforum webinar m heneka 20 03 2013Alzforum webinar m heneka 20 03 2013
Alzforum webinar m heneka 20 03 2013
 
World Alzheimer Report 2016: Improving healthcare for people living with deme...
World Alzheimer Report 2016: Improving healthcare for people living with deme...World Alzheimer Report 2016: Improving healthcare for people living with deme...
World Alzheimer Report 2016: Improving healthcare for people living with deme...
 
Enfermedad de Alzheimer
Enfermedad de AlzheimerEnfermedad de Alzheimer
Enfermedad de Alzheimer
 
BIG DATA サービス と ツール
BIG DATA サービス と ツールBIG DATA サービス と ツール
BIG DATA サービス と ツール
 
Apache Cassandra overview
Apache Cassandra overviewApache Cassandra overview
Apache Cassandra overview
 
Using docker for data science - part 2
Using docker for data science - part 2Using docker for data science - part 2
Using docker for data science - part 2
 
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
 
Growing the Mesos Ecosystem
Growing the Mesos EcosystemGrowing the Mesos Ecosystem
Growing the Mesos Ecosystem
 
Time Series Processing with Solr and Spark
Time Series Processing with Solr and SparkTime Series Processing with Solr and Spark
Time Series Processing with Solr and Spark
 

Similar to What is play

Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Peter R. Egli
 
Jax ws
Jax wsJax ws
Jax wsF K
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)slire
 
Java Servlets
Java ServletsJava Servlets
Java ServletsNitin Pai
 
1 java servlets and jsp
1   java servlets and jsp1   java servlets and jsp
1 java servlets and jspAnkit Minocha
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course JavaEE Trainers
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache TomcatAuwal Amshi
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2
 
Html servlet example
Html   servlet exampleHtml   servlet example
Html servlet examplervpprash
 
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and ScalaWriting highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and Scalajfarcand
 
Do we still need a web framework ?
Do we still need a web framework ?Do we still need a web framework ?
Do we still need a web framework ?Mathieu Carbou
 
As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?ConFoo
 

Similar to What is play (20)

Websocket shanon
Websocket shanonWebsocket shanon
Websocket shanon
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)
 
Jax ws
Jax wsJax ws
Jax ws
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
1 java servlets and jsp
1   java servlets and jsp1   java servlets and jsp
1 java servlets and jsp
 
AJppt.pptx
AJppt.pptxAJppt.pptx
AJppt.pptx
 
Jspx Jdc2010
Jspx Jdc2010Jspx Jdc2010
Jspx Jdc2010
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course Introduction to the Servlet / JSP course
Introduction to the Servlet / JSP course
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
JavaEE6 my way
JavaEE6 my wayJavaEE6 my way
JavaEE6 my way
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
 
WSO2 AppDev platform
WSO2 AppDev platformWSO2 AppDev platform
WSO2 AppDev platform
 
Servlet by Rj
Servlet by RjServlet by Rj
Servlet by Rj
 
Html servlet example
Html   servlet exampleHtml   servlet example
Html servlet example
 
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and ScalaWriting highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
 
Servlet 3.0
Servlet 3.0Servlet 3.0
Servlet 3.0
 
Do we still need a web framework ?
Do we still need a web framework ?Do we still need a web framework ?
Do we still need a web framework ?
 
As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?
 

More from Takafumi Ikeda

CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにCEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにTakafumi Ikeda
 
チーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかチーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかTakafumi Ikeda
 

More from Takafumi Ikeda (7)

CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするためにCEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするために
 
Dev love kansai
Dev love kansaiDev love kansai
Dev love kansai
 
チーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるかチーム開発をスムーズにするために何ができるか
チーム開発をスムーズにするために何ができるか
 
Scala conf2013
Scala conf2013Scala conf2013
Scala conf2013
 
Play ja 3_update
Play ja 3_updatePlay ja 3_update
Play ja 3_update
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Shibutra ikeike443
Shibutra ikeike443Shibutra ikeike443
Shibutra ikeike443
 

Recently uploaded

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

What is play

  • 1. Play! @ikeike443 2011/10/08 Playframework In Tokyo 11 10 8
  • 2. 11 10 8
  • 3. @ikeike443 Jenkins Playframework 11 10 8
  • 4. Play! @ikeike443 2011/10/08 Playframework In Tokyo 11 10 8
  • 5. Play Play Play2.0 http://www.flickr.com/photos/paulwhaleyphotography/133897626/ 11 10 8
  • 6. Play ... Java LL Web Servlet API FW XML FW FW FW 11 10 8
  • 7. 11 10 8
  • 8. Play! 11 10 8
  • 9. Play Java (Java EE) W3C World Wide Web 11 10 8
  • 10. public class HelloServlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) { PrintWriter out = res.getWriter(); out.println("Hello, world!"); out.close(); } } <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>test.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> 11 10 8
  • 11. public class HelloServlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) { PrintWriter out = res.getWriter(); out.println("Hello, world!"); out.close(); } } <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>test.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> 11 10 8
  • 12. public class Hello extends Controller { public static void index() { render(“"Hello, world!"”); } } 11 10 8
  • 13. public class Hello extends Controller { public static void index() { render(“"Hello, world!"”); } } 11 10 8
  • 14. Java web Java Play! 11 10 8
  • 15. 11 10 8
  • 16. 11 10 8
  • 17. 11 10 8
  • 18. DB REST API 10 11 10 8
  • 19. 11 10 8
  • 20. 11 10 8
  • 21. Servlet XML 11 10 8
  • 22. Play! 11 10 8
  • 23. Play Play Play2.0 http://www.flickr.com/photos/flotaz/2471940678/ 11 10 8
  • 24. HTTP I/O 11 10 8
  • 25. Servlet HTTP JPA 11 10 8
  • 26. HTTP XML URL FW Javassist Byte code enhance 11 10 8
  • 27. HTTP Servlet API Strtus Java Web HTTP Java API Web HTTP Play Java web 11 10 8
  • 28. HTTP Servlet API Strtus Java Web HTTP Java API Web HTTP Play Java web 11 10 8
  • 29. Play FW Play HttpSession Controller#session Cookie Memcached 11 10 8
  • 30. Java Web : ? Share Nothing PHP Ruby on Rails Django Web Ajax Web HTTP 11 10 8
  • 31. Java Web : ? Share Nothing PHP Ruby on Rails Django Web Ajax Web HTTP 11 10 8
  • 32. I/O 11 10 8
  • 33. 11 10 8
  • 34. Netty I/O commons-javaflow Java WebSocket 11 10 8
  • 35. public static void generatePDF(Long reportId) { Promise<InputStream> pdf = new ReportAsPDFJob(report).now(); InputStream pdfStream = await(pdf); renderBinary(pdfStream); } public static void generateLargeCSV() { CSVGenerator generator = new CSVGenerator(); response.contentType = "text/csv"; while(generator.hasMoreData()) { String someCsvData = await(generator.nextDataChunk()); response.writeChunk(someCsvData); } } 11 10 8
  • 36. I/O node.js ... Groovy... http://www.subbu.org/blog/2011/03/nodejs-vs-play-for-front-end-apps 11 10 8
  • 37. 11 10 8
  • 39. public class AsyncTest extends Controller {   public static void gotchas()   {     params.put("foo", "bar");     renderArgs.put("foo", "bar");     final String foo = "bar";     F.Promise<WS.HttpResponse> remoteCall1 = WS.url("http://some/data/1").getAsync();     F.Promise<WS.HttpResponse> remoteCall2 = WS.url("http://some/data/2").getAsync();     F.Promise<WS.HttpResponse> remoteCall3 = WS.url("http://some/data/3").getAsync();       F.Promise<List<WS.HttpResponse>> promises = F.Promise.waitAll(remoteCall1, remoteCall2, remoteCall3);     await(promises, new F.Action<List<WS.HttpResponse>>() // request suspended here     {       public void invoke(List<WS.HttpResponse> httpResponses)       {         System.out.println(params.get("foo"));         System.out.println(renderArgs.get("foo"));         System.out.println(foo);         render(httpResponses);       }     });     System.out.println("End"); // never called   } } 11 10 8
  • 40. public static void echo() { while(inbound.isOpen()) { WebSocketEvent e = await(inbound.nextEvent()); for(String quit: TextFrame.and(Equals("quit")).match(e)) { outbound.send("Bye!"); disconnect(); } for(String msg: TextFrame.match(e)) { outbound.send("Echo: %s", frame.textData); } for(WebSocketClose closed: SocketClosed.match(e)) { Logger.info("Socket closed!"); } } } 11 10 8
  • 41. 11 10 8
  • 42. JavaEE … 11 10 8
  • 43. War war 11 10 8
  • 44. 11 10 8
  • 45. HTTP I/O 11 10 8
  • 46. Play Play Play2.0 http://www.flickr.com/photos/dbrekke/276119940/ 11 10 8
  • 47. 11 10 8
  • 48. 11 10 8
  • 49. TypeSafe 11 10 8
  • 51. 11 10 8
  • 52. Digg 11 10 8
  • 54. 11 10 8
  • 57. 11 10 8
  • 58. Klout 11 10 8
  • 59. 11 10 8
  • 60. Play+Scala @_feripera 11 10 8
  • 62. @_felipera Accenture (US) Verizon Fannie Mae Freddie Mac Foreclosure.com 11 10 8
  • 63. @_felipera Accenture (US) Verizon Fannie Mae Accenture, Verizon, Fannie Mae, Freddie Freddie Mac Mac, Foreclosure.com. Other places I deployed Play at. Foreclosure.com 11 10 8
  • 64. @_felipera Play, Scala, RabbitMQ, ElasticSearch, Accenture (US) Hadoop, HBase, Oozie, Flume, etc are all part of Klout's stack. Verizon Fannie Mae Accenture, Verizon, Fannie Mae, Freddie Freddie Mac Mac, Foreclosure.com. Other places I deployed Play at. Foreclosure.com 11 10 8
  • 65. Play Play Play2.0 http://www.flickr.com/photos/lwr/168151244/ 11 10 8
  • 66. Scala Coffeescript Akka Elastic Search (lucene) MongoDB, Morphia VHost Redis PaaS SASS, SCSS 11 10 8
  • 67. Scala, Akka Scala Play! Akka (Akka support 11 10 8
  • 68. MongoDB, Redis KVS MongoDB, Redis MongoDB Morphia 11 10 8
  • 69. SASS, SCSS CSS SASS, SCSS Play SASS 11 10 8
  • 70. CoffeeScript Javascript Javascript Rails3.1 11 10 8
  • 71. Elastic Search (lucene) lucene Simple search lucene 11 10 8
  • 72. VHost Play Virtual Host SaaS 11 10 8
  • 73. Play Play Play2.0 http://www.flickr.com/photos/jim_rafferty_uk/365164119/ 11 10 8
  • 74. 2 PaaS 11 10 8
  • 75. Unix, Linux, MacOSX, Windows JDK5 + Python2.6 Win JDK OK 11 10 8
  • 76. PaaS Heroku PlayApps.net Cloudbees Cloudfoundry Google AppEngine DotCloud Amazon Beanstalk 11 10 8
  • 77. PaaS Heroku PlayApps.net Cloudbees Cloudfoundry Google AppEngine DotCloud Amazon Beanstalk 11 10 8
  • 78. PaaS Heroku PlayApps.net Cloudbees Cloudfoundry Google AppEngine DotCloud Amazon Beanstalk 11 10 8
  • 79. PaaS Heroku PlayApps.net Cloudbees Cloudfoundry Google AppEngine war DotCloud Amazon Beanstalk 11 10 8
  • 80. PaaS Heroku PlayApps.net Cloudbees Cloudfoundry Google AppEngine war DotCloud Amazon Beanstalk 11 10 8
  • 81. 1.x Play! http://www.flickr.com/photos/funkimag/5397995349/ 11 10 8
  • 82. Play Play Play2.0 http://www.flickr.com/photos/alphadesigner/3833696256/ 11 10 8
  • 83. 11 10 8
  • 84. Scala SBT Python Scala Groovy Akka 11 10 8
  • 85. Preview 11 10 8
  • 86. Play! 11 10 8
  • 87. 11 10 8