introduction java web framework and web server
DESCRIPTION
In this slideshow i included all java web framework and web server.TRANSCRIPT
Saunak Surani
Open Mind
Subject : J2EE
Who is ?
• The Application Server implements Java 2 Enterprise Edition (J2EE) 1.4 technology.
• The J2EE platform is a set of standard specifications that describe application components, APIs, and the runtime containers and services of an application server.
• J2EE applications are made up of components such as JavaServer Pages (JSP), Java servlets, and Enterprise JavaBeans (EJB) modules.
• These components enable software developers to build large-scale, distributed applications.
• Developers package J2EE applications in Java Archive (JAR) files (similar to zip files), which can be distributed to production sites.
• Administrators install J2EE applications onto the Application Server by deploying J2EE JAR files onto one or more server instances (or clusters of instances).
What is J2EE ?
Naming - A naming and directory service binds objects to names. A J2EE application can locate an object by looking up its Java Naming and Directory Interface (JNDI) name.
Security - The Java Authorization Contract for Containers (JACC) is a set of security contracts defined for the J2EE containers. Based on the client’s identity, containers can restrict access to the container’s resources and services.
Transaction management - A transaction is an indivisible unit of work. For example, transferring funds between bank accounts is a transaction. A transaction management service ensures that a transaction is either completed, or is rolled back.
Message Service - Applications hosted on separate systems can communicate with each other by exchanging messages using the Java™ Message Service (JMS). JMS is an integral part of the J2EE platform and simplifies the task of integrating heterogeneous enterprise applications.
J2EE Services
Contu..
In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.
In programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by programmer code, thus providing application specific software. It is a collection of software libraries/components providing a defined application programming interface (API).
In computer systems, a framework is often a layered structure indicating what kind of programs can or should be built and how they would interrelate.
Some computer system frameworks also include actual programs, specify programming interfaces, or offer programming tools for using the frameworks.
A framework may be for a set of functions within a system and how they interrelate; the layers of an operating system; the layers of an application subsystem; how communication should be standardized at some level of a network; and so forth. A framework is generally more comprehensive than a protocol and more prescriptive than a structure .
What is Framework ?
A framework, or software framework, is a platform for developing software applications.
It provides a foundation on which software developers can build programs for a specific platform.
For example, a framework may include predefined classes and functions that can be used to process input, manage hardware devices, and interact with system software.
This streamlines the development process since programmers don't need to reinvent the wheel each time they develop a new application.
A framework is similar to an application programming interface (API), though technically a framework includes an API.
As the name suggests, a framework serves as a foundation for programming, while an API provides access to the elements supported by the framework.
A framework may also include code libraries, a compiler, and other programs used in the software development process.
Contu..
inversion of control - In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework. default behavior
A framework has a default behavior - This default behavior must actually be some useful behavior and not a series of no-ops.
extensibility - A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality.
non-modifiable framework code - The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.
Frameworks contain key distinguishing features that separate them from normal libraries:
Contu..
ActiveX and .NET for Windows development.
Cocoa for Mac OS X, Cocoa Touch for iOS.
Android Application Framework for Android.
Several different types of software frameworks exist
Contu..
Apache Open JPA : Apache OpenJPA is a Java persistence project at The Apache Software Foundation that can be used as a stand-alone POJO persistence layer or integrated into any Java EE compliant container and many other lightweight frameworks, such as Tomcat and Spring.
Hibernate : Historically, Hibernate facilitated the storage and retrieval of Java domain objects via Object/Relational Mapping. Today, Hibernate is a collection of related projects enabling developers to utilize POJO-style domain models in their applications in ways extending well beyond Object/Relational Mapping.
Castor : Castor is an Open Source data binding framework for Java. It's the shortest path between Java objects, XML documents and relational tables. Castor provides Java-to-XML binding, Java-to-SQL persistence, and more.
Java Ultra-Lite Persistence : JULP is an ultra lite object-relational mapping framework (220KB)
Persistence frameworks in Java
Contu..
JDBM : JDBM is a transactional persistence engine for Java. It aims to be for Java what GDBM is for other languages (C/C++, Python, Perl, etc.): a fast, simple persistence engine. You can use it to store a mix of objects and BLOBs, and all updates are done in a transactionally safe manner. JDBM also provides scalable data structures, such as HTree and B+Tree, to support persistence of large object collections.
Speedo : Speedo is an open source implementation of the JDO (TM) specification.
Spring MVC : The Spring Framework is an open source application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.
Struts 1.x : Apache Struts was an open-source web application framework for developing
Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May, 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.
Contu..
Apache Axis : Apache Axis (Apache eXtensible Interaction System) is an open source, XML based
Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and
various utilities and APIs for generating and deploying Web service applications. Using Apache Axis,
developers can create interoperable, distributed computing applications. Axis is developed under the
auspices of the Apache Software Foundation.
Apache Xerces : Xerces is Apache's collection of software libraries for parsing, validating, serializing
and manipulating XML. The library implements a number of standard APIs for XML parsing, including
DOM, SAX and SAX2. The implementation is available in Java, C++ and Perl programming languages.
Hibernate : Hibernate ORM (Hibernate in short) is an object-relational mapping library for the Java
language, providing a framework for mapping an object-oriented domain model to a traditional
relational database. Hibernate solves object-relational impedance mismatch problems by replacing
direct persistence-related database accesses with high-level object handling functions.
Hibernate's primary feature is mapping from Java classes to database tables (and from Java data
types to SQL data types). Hibernate also provides data query and retrieval facilities. It generates SQL calls
and relieves the developer from manual result set handling and object conversion. Applications using
Hibernate are portable to supported SQL databases with little performance overhead.
Contu..
JDOM : JDOM is an open source Java-based document object model for XML that was
designed specifically for the Java platform so that it can take advantage of its language
features. JDOM integrates with Document Object Model (DOM) and Simple API for XML
(SAX), supports XPath and XSLT. It uses external parsers to build documents. JDOM was
developed by Jason Hunter and Brett McLaughlin starting in March 2000.
Apache Velocity : Apache Velocity is a Java-based template engine that provides a
template language to reference objects defined in Java code. It is an open source
software project directed by the Apache Software Foundation and aims to ensure clean
separation between the presentation tier and business tiers in a Web application (the
model–view–controller design pattern).
JAX-WS : The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services. JAX-WS is one of the Java XML programming APIs. It is part of
the Java EE platform from Sun Microsystems.
Java Server Faces – JSF : The most using web framework. Because of its component
architecture, the developer doesn’t need to mess with writing HTML, JavaScript etc to get
rich “AJAX” type of functionality. It also takes care of state and event management. It has
very less configuration too.
Contu..
GWT : Speed development. Easy to develop good, neat and “Browser independent” Ajax applications. Give more stress to pure browser independent .
Stripes : No Configurations . Annotation based programming makes coding more interesting and easy.
Struts2 : No more ActionForms! Use any JavaBean to capture form input or put properties directly on an Action class. Use both binary and String properties! and its enhanced and rich tags.
Wicket : Swing-like OO Component Model. This feature separates Wicket from all other frameworks .
Contu..
• Aranea Web Framework • RSF • Strecks • Hamlets • Google Web Toolkit • Aurora • ThinWire• AribaWeb • Playframework• JPublish
etc …
Servers for Java ?
Apache Geronimo application server
Glassfish Application Server
JBoss Application Sever
IBM - WebSphere Application Server – Software
BEA WebLogic Server
Sun GlassFish Enterprise Server
etc…
Contu..
A Java IDE (Integrated Development Environment) is a software application which enables users to more easily write and debug Java programs. Many IDEs provide features like syntax highlighting and code completion, which help the user to code more easily.
What is a Java IDE?
• Eclipse
• NetBeans
• JCreator
• Processing
• BlueJ
• JBuilder
Types of IDE :
• Geany
• IntelliJ IDEA
• JDeveloper
• jGRASP
• jEdit
• MyEclipse
• Visual Café
• Gel
• JIPE
• Zeus
Contu..
• Web services are client and server applications that communicate over the World Wide Web’s (WWW) HyperText Transfer Protocol (HTTP).
• As described by the World Wide Web Consortium (W3C), web services provide a standard means of interoperating between software applications running on a variety of platforms and frameworks.
• Web services are characterized by their great interoperability and extensibility, as well as their machine-processable descriptions, thanks to the use of XML.
• Web services can be combined in a loosely coupled way to achieve complex operations. Programs providing simple services can interact with each other to deliver sophisticated added-value services.
What Are Web Services?
1. “Big” Web Services : Big web services use XML messages that follow
the Simple Object Access Protocol (SOAP) standard, an XML
language defining a message architecture and message formats.
Such systems often contain a machine-readable description of the
operations offered by the service, written in the Web Services
Description Language (WSDL), an XML language for defining
interfaces syntactically.
2. RESTful Web Services : Representational State Transfer (RESTful) web
services. REST is well suited for basic, ad hoc integration scenarios.
RESTful web services, often better integrated with HTTP than SOAP-
based services are, do not require XML messages or WSDL service–API
definitions.
Types of Web Services :
Contu..
Service Oriented Architecture or SOA for short is a new architecture for the development of loosely coupled distributed applications.
In fact service-oriented architecture is collection of many services in the network. These services communicate with each other and the communications involves data exchange & even service coordination.
Earlier SOA was based on the DCOM or Object Request Brokers (ORBs).
Nowadays SOA is based on the Web Services.
What is Service-Oriented Architecture?
Due to its platform independence, it allows companies to use the software and hardware of their choice .
There is no threat of vendor lock-in .
SOA enables incremental development, deployment, and maintenance.
Companies can use the existing software (investments) and use SOA to build applications without replacing existing applications.
The training costs are low, so the available labor pool can be used for running the applications.
Why SOA?
Contu..
Questions?
Thnak You