From the course: Oracle Java Foundations
Java in the enterprise - Java Tutorial
From the course: Oracle Java Foundations
Java in the enterprise
(gentle music) - [Joe] Java in the enterprise. Java works in the enterprise, and it's actually mostly where Java is used today in the backend processing. We don't really see Java used too much for user interfaces any longer. So in the backend, one of the things we work with Java are web services. Web services allow us to expose code to the enterprise for reuse in a controlled standardized manner. Basically sending messages over HTTP transports. Although some types of web services like SOAP can work with any transport, but typically we're talking about over the internet. These web service capabilities include the ability to work with XML object mappings and be able to convert Java objects into XML for transmission across the wire, and to receive the XML data back and convert it back into a Java object. And they can do the same thing with JavaScript Object Notation, JSON. So there's capabilities built in and APIs built in that'll convert Java objects into XML or JSON, send them across to another web service, and get the result back and convert it back to Java. The JAX-WS API enables the SOAP service implementation where we can define our own interface and our own types of methods that we support. The JAX-RS API enables REST service implementation that leverages the HTTP transport and the operations available in HTTP and can work with different types of data. SOAP can only work with XML, but REST services can work with any type of data we wish, XML, JSON, plain text, whatever we want. Java EE applications are actually deployed to a server in order to execute. While Java Standard Edition applications can run from the command line, Java EE applications have to be deployed to a server like WebLogic or WebSphere, Jboss, or Tomcat. These types of servers or containers host Java EE applications. They provide support for Enterprise Java Beans, which implement reusable logic and web containers. Here, for example, we see the web container supporting front-end components like serverless, Java server pages, and Java server faces. And the EJB container supports business logic and backend components. The container provides security, concurrency, transaction management, and lifecycle management, so the developer doesn't have to deal with that. The Oracle Cloud Infrastructure OCI supports a number of different APIs and services to make enterprise applications easier to write for the cloud. We support developer tools like command line tools, SDKs, Ansible, Terraform, Eclipse, GitHub, so you can put your code into GitHub and be able to leverage it from the cloud. We support many different languages and frameworks, Java EE of course, but also Ruby, Node.JS, Python, C++ and C#, Go, Helidon, and GraalVM as ways of hosting. Down here we see cloud native support, functional programming, streaming, API management, and working with events. And of course, we support Kubernetes and Docker. We also support data management, the Oracle's autonomous database, data warehouse and transaction processing, and the not only SQL databases. And then we have support for visual builder, resource manager, and other types of tools that we can leverage from a Java perspective. At the base of all this is the Oracle Cloud Infrastructure, the virtual machines or bare metal compute instances, the storage, the networking, and the security and databases. So with this, all these capabilities are available to the Java developer, and we'll see in the Java learning subscription and other learning subscriptions how to work with all these different capabilities.