HTML5 / CSS3 / JS6
The three pillars of any web application is HTML5, CSS3 and JS 6. Together, these components can generate web sites, and can help in establishing business kiosk on the web for anyone. Small or big, everyone now has to have the option of registering their web presence, through these triad of technologies. Colourful, interactive and dynamic web sites help in providing attractive business options.
MEAN stack support four distinct technologies, along with the static web technologies (HTML5/CSS3/JS6) option. They are MongoDB (for M), ExpressJS (for E), Angular (for A) and NodeJS (for N). These different technologies are very powerful in their own areas of solution. For example, MongoDB provide a very robust Database support for handling the data. ExpressJS provide a solid web server solution for handling the core part of web application. Angular, on the other hand, provide a robust UI app development, while NodeJS act as the base / foundation for all the three and more.
Enterprise Java has been the favourite for the past couple of decades, for enterprises as well as for the professionals. Earlier, the enterprise Java was very popularly known as J2EE (or Java EE). Currently the stack is being handled by eclipse community, and it is now known as Jakarta EE. Essential constituents of this course are Servlets, JSP, EJB and JPA. On the top of this, based on the needs other Java technology platforms can be used for delivering the application on the web.
Web Service is a technology that allows a seamless communication between different applications, developed using different platforms. Web services technologies allows these applications to communicate using either SOAP or ReSTful services. SOAP provides a XML based communication exchange, while ReSTful architecture allows you to communicate using JSON data exchange format. Web services such as AWS (Amazon Web Services) is based on these ReSTful services. Likewise, micro-services architecture is the hot topic we handle on the web services front.
Microservices is an architectural style where an application is broken into individual logical services. The application is structured in a manner where each microservice is isolated logically and focus only on that business function. The services are loosely coupled, even the data is isolated to that service. The main advantage is each service is deployed individually which enables lesser downtime of the entire app in case one of these individual service is down. They are REST services that can be deployed in a serverless container and can be deployed in docker container and run on any platform.
Spring & Hibernate
Spring has been the most popular Java framework for over 15 years. Early version of J2EE was heavy and was cumbersome to develop. Spring is a POJO based framework which kept configuration and code separately for ease of development. It comes with a lightweight container which makes objects available based on the configuration. It introduced IoC (Inversion of Control) or Dependency Injection(DI) where the called object is injected into the caller. It has several modules for web development, SOAP /REST services, JDBC, ORM, Messaging, Batch and many more.
Hibernate is the most popular and widely used ORM(Object Relationship Mapping) tool in the Java world for SQL based Databases. Hibernate is in fact the driving factor for Sun Microsystems to come up with JPA(ORM based Entity Beans) in Java EE. Later JPA became the specification and subsequent releases of Hibernate was built on that JPA spec and APIs of JPA are also being incorporated in Hibernate.
Java Persistence API
Java Persistence API(JPA) is an ORM(Object Relational Mapping) tool which enables POJO objects to be mapped with tables of a database. JPA was created in Java EE 5 as a part of EJB 3.0 spec, but later on became a separate spec. Now Spring JPA and Hibernate follow the JPA spec for their respective implementations. It’s interesting to note that the spec lead of Hibernate was roped in by Sun to develop JPA as part of EJB 3.0 as Entity Beans in EJB 2.x was pretty cumbersome and heavy. JPA reduces too much configuration and is annotation based. Now JPA is part of Jakarta EE