This page is consists of two main topics: Application Frameworks and Integration Frameworks. Application Framework is a set of common software routines (e.g. Jakarta Project creates and maintains open source software for the Java platform under the ASF) that provides a foundation structure for developing an application. Frameworks take the tedium out of writing all the program code for an application from scratch.
Object-oriented application frameworks are the norm today, are structured as a class library. Object Oriented framework consists of a set of classes that work together to solve a family of related problems.

Programmers can use inheritance and delegation to extend the framework. Examples are RogueWave Tools.h++, Model-View Controller (MVC), Microsoft Foundation Classes (MFC). There are also frameworks geared to specific purposes (below table shows Specialized Application Frameworks); for example, a framework for a content management system (CMS) would include the infrastructure for developing Web e-commerce, document maintenance and interactive user activities such as blogs and wikis (see Joomla!).

See also some modern web technologies, like: Angular, Node.Js, React.js, Bootstrap, Gulp and Grunt, Python Frameworks, REST Django and other web technologies. See also: Best Java Frameworks, Top 10 Development Frameworks and list of below items.

Frameworks Grouped by Thematically

Frameworks can be grouped thematically by categorizing them based on the primary issues, ideas, or subjects they address, such as security, data access, etc. Thematic analysis provides a structured method to identify key themes in data and then organizing frameworks or insights around these themes to make sense of complex information

Remark

Year by year new technologies (languages, frameworks and libraries, etc.) are evolving for software development. In such a rapidly evolving field, where technology is in a state of constant change, the ability to quickly learn and adopt a new technology effectively is a desirable skill for a technology expert. Technologies which are mentioned below are worth exploring. But choose the one which is still active or new and fulfills your needs. Some dormant or deprecated ones are mentioned only for a reference or for comparison.


Model View Controller

Model View Controller (MVC) is an architecture for building applications that separate the data (model) from the user interface (view) and the processing (controller). Providing a programming interface between the data and the processing has been a primary concept in information technology for decades. MVC is widely used in Web-based application frameworks.
In practice, MVC views and controllers are often combined into a single object because they are closely related. For example, the controller code validates a request for data and causes it to be returned in a view. View-controller objects are tied to only one model; however, a model can have many view-controller objects associated with it.

Implementations of MVC as Web-based Frameworks

Web application frameworks (e.g. Struts, Spring MVC are examples of Implementaion of MVC) are software tools that are commonly used to aid in the creation and management of various types of online applications. A web application framework can involve designing and launching pages for a website or provisioning various applications to provide a wide range of web services to consumers. The framework tends to include all the elements needed to accomplish the desired tasks, thus eliminating the need to secure the necessary tools from different sources.. There are numerous JAVA FRAMEWORKS either in development or in use. Many of these frameworks are built on top of, or borrow elements from the Java EE platform or Eclipse etc.

Comparision of web frameworks: list of other java web frameworks, Comparing, Struts1 and Struts2, Comparison wiki, Comparison 1, Comparison 2.



Spring and EJB Framework

In an enterprise application, business logic forms the basis of transforming the persisted data. That is the reason why the business logic layer is considered the most important layer of any enterprise application. Typically, the Java Enterprise Edition (JEE) component that was used to implement business logic was Enterprise Java Beans (EJB). However, EJBs are heavy weight components that require application servers to run. XDoclet - Attribute-Oriented Programming: XDoclet - About

This EJB was the scenario before the Spring Framework came into the picture. The Spring Framework provides a lightweight container to run the objects implementing business logic. In other words, Spring Framework-based business objects do not require an application server to run. Spring Framework is "An open-source layered Java/J2EE application framework having a light-weight container implementing Inversion-of-Control and Aspect Oriented Programming." The key points here are "layered application framework" and "Inversion of Control and Aspect Oriented Programming." See also Continuous integration ( CI ).





Spring Boot and Microservices

Spring Boot 4 & Spring Framework 7: What's New?, SpringBoot 4 GA, Spring 7 GA

Spring also owns some disadvantages (see pros-and-cons) like increased project size due to dependencies and its management, complex configuration and debugging. Spring Boot helps developers build applications with ease and with far less toil than other competing paradigms. Embedded web servers, auto-configuration, and “fat jars” help you get started quickly, and innovations like LiveReload in Spring DevTools mean developers can iterate faster than ever before.

Microservice architectures are the ‘new normal’. Building small, self-contained, ready to run applications can bring great flexibility and added resilience to your code. Microservice architecture is not complete without Spring Cloud ‒ easing administration and boosting your fault-tolerance. Developing distributed systems can be challenging, but Spring Cloud provides tools to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, controlbus).

See other frameworks for developing Microservices: Quarkus, Micronaut, Eclipse Vert.x., Ballerina


Web Service Frameworks in Java

What is a Web Service?, What is a REST?

A Web service (Java EE Web service) is a method of communication between two electronic devices over World Wide Web. A web service is a software function provided at a network address over the web or the cloud; it is a service that is "always on" as in the concept of utility computing. More about Web Services: webservicex.net, Specification, WML , WML Script, RSS, Tutor ial, Apache WS, Java Web Services

REST (REpresentational State Transfer) is an architectural style, and an approach to communications that is often used in the development of Web services. The use of REST is often preferred over the more heavyweight SOAP (Simple Object Access Protocol) style because REST does not leverage as much bandwidth, which makes it a better fit for use over the Internet. Building RESTful Web Services with JAX-RS, RESTful Web Services

See also:Java Web ServicesXML Usage in Web ApplicationsXML Processing (JAXP) and JAXBWeb ToolkitRESTful Micro Frameworks, • Microservices with Spring, • REST services and microservices

  • Apache CXF - is an open source (web) services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. See more: About, JAX-WS Tutorial
  • WSIT - is for developing the next-generation of web service technologies, provides Web Services Interoperability Technologies ( WSIT) between Java EE and .NET web services in a SOA.
  • Django REST - Python - Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. See: Co je Django?, use in Postgres, Django

Comparision Web service frameworks: List of WS, Open Source Web Services Tools in Java, Web services, Framework comparisions, Comparison

Persistence Frameworks in Java

Java persistence evolved from rudimentary JDBC and the complex EJB 2 entity beans to the standardized Java Persistence API (JPA) in 2006, which drew from the open-source Hibernate framework. Following this, JPA was renamed Jakarta Persistence in 2019 after the Java EE project moved to the Eclipse Foundation, continuing its evolution with versions like Jakarta Persistence 3.1 and 3.2 under the new namespace jakarta.persistence. See list of Java Persistence Frameworks

Modern Trends:
Spring Data (since 2011): Introduced higher-level abstractions for repository-based access, simplifying development. Year by year evolving to keep adding new improvements.
Jakarta Data: Evolving from Java EE, it further simplifies data access.
Challenges: Despite advancements, challenges remain, including performance overhead from data conversions and the complexity of managing object graphs and schema migrations

See alsoSQL TutorialDatabase Management Systems (DBMS)Object Relational (OR) Mapping

Java Presentation Frameworks

Reporting and Business Intelligence Frameworks in Java.

  • Apache FOP ( Formatting Object Processor ) is a Java based print formatter based on the XSL-FO (XSL-Formatting Object) standard.
  • BIRT - Business Intelligence and Reporting Tools provides reporting and business intelligence capabilities for rich client and web applications: Home, Birt Tutorial
  • JFree Chart - is a free Java class library for generating charts, including: pie charts, Gantt charts, wafer map charts See more: About, Apply
  • JasperReports - has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files. See more: About, Tutorialspoint

Comparision reporting frameworks: Charting and Reporting Tools, More Tutorials, DocFlex, PDF and Postscript

Intelligent Agent Framework

There is growing interest in using intelligent software agents for a variety of tasks, including navigating and retrieving information from the Internet and from databases, online shopping activities, user authentication, negotiation for resources, and decision making, see also Artificial Intelligence.

Testing Frameworks in Java

See more Open Source Testing Frameworks in Java here

More Testing tools: Test Automation, 2, Top 10, Testing Tools in Java, Testing, JWebUnit, SELENIUM, Compare1, Test Framework Comparison, Testing FAQ, Unitils


Java Logging Frameworks

See more Open Source Logging Frameworks in Java here

Comparision of logging frameworks: Logging Tools and Frameworks, Other platforms, Logging Dependencies in Spring


Java Security Frameworks in Java

See also: Java Security Technology and Computer Security and Cryptography, Java MD5 Hashing, Other Security Tools


Rule Engines and Workflow Engines in Java

A workflow engine (e.g. jBPM, iProcess, etc.) is a software application that manages and executes modeled computer processes. A workflow approach to analyzing and managing a business process can be combined with an object-oriented programming approach, which tends to focus on documents and data.
A business rules engine (e.g. Drools, etc., more about BRE) is a software system that executes one or more business rules in a runtime production environment.

List of other Engines: Top 10 java-workflow-engine, Open Source Workflow Engines in Java and Open Source Rule Engines in Java


Build Systems, POM, and Source Control (see also: DevOps, Project Health Tools)

More on: • Open Source Build Systems in JavaSource Control Tools in Java, • Software ManagementProject Health Tools

Suggested Reading: Software configuration management, Build Tools in Java Development, ViewVC, Compare build tools


Java Media Frameworks

See also: • Java ME Java 3DGraphic Objects (2D & 3D)


XML & JSON Frameworks in Java ( Open Source XML Parsers, XML UI)

Standards you need to be familiar as a priority, see XML & JSON Topics, XML Usage in Web ApplicationsXML Processing (JAXP) and JAXBX-Stream Annotations

  • JiBX - for binding XML data to Java objects, lets you work with data from XML doc. using your own class structures See more: About, Step by
  • dom4j - is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform
    See more: About, Usage

Comparision of xml tools: Comparing Data Binding ToolsJava XML Tools, • JSON library comparison Tools, • Gson vs Jackson


Integration Frameworks

scripting on jvm

Software architecture and software design are two aspects of the same topic. Enterprise integration is a technical field of Enterprise Architecture, which focused on the study of topics such as system interconnection, electronic data interchange, product data exchange and distributed computing environments. Enterprise Information Integration (EII), is the ability to support a unified view of data and information for an entire organization. ARIS (Architecture of Integrated Information Systems) is an approach to enterprise modeling. See also: BUSINESS PROCESS MODELING TOOLS

Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The following open-source software JBI based ESB implementations are available here and an example. The Application Integration Framework (AIF) enables companies to integrate and communicate with other business processes and partners electronically. E.g. Overview of AIF is the infrastructure within Microsoft Dynamics AX with which you can expose business logic or exchange data with other systems. E.g. Microsoft Dynamics AX, Trask Application Integration.

An Enterprise Architecture Framework (EA framework) defines how to create and use an enterprise architecture.

Enterprise Application Integration - EAI (see implementations: EAI Commercial products, e.g. TIBCO Business Works, EAI using J2EE) is the use of software and computer systems architectural principles to integrate a set of enterprise computer applications, e.g. Patterns and Best Practices for EI, 2

What is a TIBCO BW (Business Works)?

TIBCO ActiveMatrix BW is one of the leading service creation, orchestration, and integration products on the market. It has been deployed by over thousands companies worldwide and is the foundation for several of the largest mission critical service-oriented business applications in production today. For ore information: TIBCO ActiveMatrix BusinessWorks Essentials.

Other kinds of Enterprise Integration Frameworks - EIF

Other Tools: Java ToolkitAPI'sProgrammer's CornerWebDev. ToolsDatabase ToolsModeling & DesignMultimedia (AI Tools)Maths and Science


Some other practical Java Frameworks

Also see: Open Source Software in Java

References


  1. Comparison of web application frameworks
  2. Open Source Web Frameworks
  3. Integration using J2EE
  4. EAI
  5. Choose language to compare web frameworks