Eclipse MicroProfile Basics This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section. Parent Project: Technology Project Background: The microprofile.io community (http://microprofile.io/) is a semi-new community dedicated to optimizing the Enterprise Java mission for microservice based architectures. The goal is to define a microservices application platform that is portable across multiple runtimes. Currently, the main players in this group are IBM, Red Hat, Tomitribe, Payara, the London Java Community (LJC) and SouJava. Additional key industry individuals are also participating. The idea for this community originated at the Devoxx UK and DevNation conferences in 2016. At JavaOne 2016, we officially announced MicroProfile 1.0 with several vendors lined up with production ready implementations. We have determined that we have enough traction with the industry and community to be associated with a foundation. We picked the Eclipse Foundation as a suitable foundation due to its long history of providing great support for the Java Ecosystem and rigour with regards to dealing with IP. Scope: The goals of the Eclipse MicroProfile project can be summarized as follows: • • • •
Provide a portable Microservices architecture across multiple Enterprise Java runtimes. Provide an interoperable Microservices architecture that allows communication among polyglot runtimes (not just Java). Provide an "incubation" environment for innovative ideas in the area of microservices and Enterprise Java. Once an idea has been iterated on and approved by the larger community we can then submit to the JCP for consideration in a future JSR, (or other appropriate stds body).
Description: The Eclipse MicroProfile project is aimed at optimizing Enterprise Java for the microservices architecture. Many innovative "microservice" Enterprise Java environments already exist in the Java ecosystem, including but not limited to:
• • • • •
Wildfly Swarm WebSphere Liberty Payara TomEE ...
These projects are creating new features and capabilities to address microservice architectures -leveraging both Java EE and non-Java EE technologies. The goal of this project is to iterate and innovate in short cycles, get community approval, release, and repeat. Eventually, the output of this project could be submitted to the JCP for possible future inclusion in a Java JSR (or another stds body). Why Here?: The Eclipse Foundation has established itself as a solid foundation, especially in the Java environment. The MicroProfile community does not want spend cycles on the infrastructure that is already available and acceptable via the Eclipse Foundation. Eclipse does not currently have any projects directly related to Microservices. Accepting this project will not only help our development community, but it will also help with the industry's association of Eclipse and Microservices. Eclipse has a strong reputation with regards to dealing with Intellectual Property, this is important to the users of Microprofile. Licenses: Apache License, Version 2.0 Legal Issues: No known issues. Project Scheduling: The MicroProfile community would like to produce time-boxed releases, with the plan to do one every quarter initially. Our first release was Sept 2016, with the next one planned before the EOY. As stated previously, our plan is to iterate quickly, solidify the results, release, and repeat. We want to keep the content of each release small and containable. Future Work: The first MicroProfile release was based on three existing Java EE technologies -- JAX-RS 2.0, CDI 1.2, and JSON-P 1.0.
We are now working through the discussions to determine the content of the next releases. Ideas being discussed include JWT propagation, JCache, Persistence, Bean Validation, and Web Sockets. We plan to be community-driven, so these plans may change. The response for MicroProfile at JavaOne exceeded our expectations. We plan to participate in other key upcoming conferences such as Devoxx US next March. We also plan to participate with the JUGs around the world. We just held a MicroProfile panel discussion at the recent vJUG, and there was an individual presentation about TomEE's support of MicroProfile. There have been several articles written with input from various members of the community, along with the normal blogs and tweets. HidePeople Project Leads: Kevin Sutter John Clingan Committers: Kevin Sutter David Blevins Andy Gumbrecht Ken Finnigan John Ament Thiago Veronezi Jonathan S. Fisher John Clingan Mike Croft Steve Millidge Mark Little Ian Robinson Alasdair Nottingham Ondrej Mihályi Mentors: Wayne Beaton John Duimovich Interested Parties: •
Organizations o IBM o Red Hat o Payara o Tomitribe o LJC o SouJava o ...
Individuals o John D. Ament o Mark Struberg o Werner Keil o Anatole Tresch o ... ...
HideSource Code Initial Contribution: The microprofile.io community has sample code (sample applications), presentations, and web site data in the repository thus far. All contributions to date have been under the Apache v2 License. Copyrights are inconsistent at the moment. We will resolve the copyrights before contribution to Eclipse. Source Repository Type: GitHub Source Repositories: https://github.com/microprofile