3. What is J2EE ?
• 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).
4. J2EE Services
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.
Contu..
5. What is Framework ?
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 .
6. 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..
7. Frameworks contain key distinguishing
features that separate them from
normal libraries:
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.
Contu..
8. Several different types of software
frameworks exist
ActiveX and .NET for Windows development.
Cocoa for Mac OS X, Cocoa Touch for iOS.
Android Application Framework for Android.
Contu..
9. Persistence frameworks in Java
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)
Contu..
10. 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..
11. 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..
12. 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..
13. 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..
14. • Aranea Web Framework
• RSF
• Strecks
• Hamlets
• Google Web Toolkit
• Aurora
• ThinWire
• AribaWeb
• Playframework
• JPublish
etc …
16. Apache Geronimo application server
Glassfish Application Server
JBoss Application Sever
IBM - WebSphere Application Server – Software
BEA WebLogic Server
Sun GlassFish Enterprise Server
etc…
Contu..
17. What is a Java IDE?
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.
18. Types of IDE :
• Eclipse
• NetBeans
• JCreator
• Processing
• BlueJ
• JBuilder
• Geany
• IntelliJ IDEA
• JDeveloper
• jGRASP
• jEdit
• MyEclipse
• Visual Café
• Gel
• JIPE
• Zeus
Contu..
19. What Are Web Services?
• 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.
20. Types of 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.
Contu..
21. What is Service-Oriented Architecture?
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.
22. Why SOA?
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.
Contu..