Top Banner
1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES
52

1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Dec 24, 2015

Download

Documents

Adelia Walton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

1

Lecture 14George Koutsogiannakis/ Summer

2011

CS441

CURRENT TOPICS IN PROGRAMMING LANGUAGES

Page 2: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Topics

• Enterprise Java Beans (EJB)– Definitions.– Types of EJBs.– Application Servers/ EJB Servers.– EJB Containers.– EJB Application Example.– Session Beans.– Packaging Web Modules.– Deploying Web Modules.

2

Page 3: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans• Creating a complete enterprise web application using the approach using

discreet APIs is difficult (i.e using the servlets API, the RMI API, the JDBC API etc).– It requires a lot of work using the fragmented technologies (servlets,

RMI etc.) to implement:• Session.• Security.

– Administrative versus manager versus user • Transaction management (database data).• Dynamic content geared to various users.

3

Page 4: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Presentation layer components that are different for each user (dynamic presentation layer).

• Issues with deployment.• Issues with distribution.

• All of the above issues can be:– unified under one roof with Enterprise Java Beans bringing all

technologies together.– Easy implementation of various functionalities using one development

environment (such as NetBeans).– Easy deployment and distribution.– Free developer from creating deployment descriptor file (i.e.web.xml

and others needed).

4

Page 5: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans• An Enterprise Java Bean (EJB) is a server side component that

encapsulates the business logic of an application. • Or another definition is:

An architecture for the development and deployment of transactional, distributed object applications based on server side software components– EJB s run in the EJB container of an application server (such as the Sun

Java System Application Server or GlassFish server of NetBeans). Therefore, in that respect, they are different than plain Java Beans.

• Java Beans can be self sustained components that can be run outside a container.– The EJB container provides certain services such as security, transactions

and other services. – The container therefore is similar to the concept of a container for servlets in a web

server.– A container is housed inside a Component Transaction Monitor (CMT).– CMT is part of the Application Server (i.e. GlassFish).

5

Page 6: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans• EJB s are used to create distributed business objects. As such

they handle:– Persistence (saving of the state of the business object)– Security.– Concurrency.– Transaction Management.

• EJB s should run on any Operating System (at least theoretically although in practice it may not be 100% correct).

• EJBs are reusable , scalable, can be deployed on any Application Server.

• EJBs are part of J2EE and supported by package:– javax.ejb

6

Page 7: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Advantages of EJB s:– Developer can concentrate on solving business problems since a

number of the services are offered by the container.– The client is independent of the business logic and the developer for

the client can concentrate on presentation only. – Thinner clients can be developed.– A new EJB can be constructed from existing EJBs .– They can be distributed amongst a number of machines (locality

independent). Thus, scalability can be achieved.– Remote clients can locate EJBs ( a similar task that an RMI client has

when it does a look up on the Naming Service to get information about a remote object)

7

Page 8: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans– Organizations can build their own EJB components or purchase

components from a third party.– Development of an EJB component is based on a specification.

Vendors of EJB servers use a common platform in designing the servers thus ensuring portability amongst different servers.

8

Page 9: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Types of EJB s are:– Entity Beans

• They model: products, customers, data.• They have a persistent state.• They have been replaced with the Java Persistence API

entities in EE 6 (they exist in previous versions, prior to EE5).– Session Beans

• They model: processes, coordinate the activities of EJBs• Do not have a persistent state.

– Message Driven Beans ( these beans require usage of Java Message Service API – JMS).

9

Page 10: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Enterprise JavaBeans technology supports both transient and persistent objects.

• A transient object is called a session bean, • and a persistent object is called an entity

bean.

10

Page 11: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• A session bean exists NORMALLY only for the duration of a single client/server session.

• A session bean CAN perform operations such as accessing a database or CAN perform calculations.

• Session beans can be transactional, but normally are not recoverable following a system crash.

• Session beans can be stateless, • or they can maintain conversational state across methods and

transactions. • A session bean must manage its own persistent data.

11

Page 12: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• An entity bean is an object representation of persistent data maintained in a permanent data store, such as a database.

• An entity object can manage its own persistence (called Bean Managed Persistence -BMP)

• or it can delegate its persistence to its container (called Container Managed Persistence- CMP).

12

Page 13: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Types of Entity Beans:

13

Entity Beans

Entity Beans that implement

container managed

persistence

Entity Beans that implement bean managed

persistence

These beans are defined Independent of the database that they use

These beans use explicit SQL statements relating to the database they use

Page 14: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Enterprise Java Beans

• Types of session beans:

14

Session Beans

Stateless Session Beans:

Any client can use them

Stateful Session Beans:

Specific to a client. Maintain

information about the client.

Page 15: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Application Server Services• The Application Server provides (such as GlassFish in NetBeans):

– Persistence service.• Ability to save the data (state) after execution.

– Transaction processing service.• Ability to execute a group of operations atomically.

– Concurrency Control.• Simultaneous execution of a number of requests.

– Events using Java Message Service API (JMS).• Ability to send messages to other components.

– Naming and Directory service.– Security via JCE and JAAS APIs.– Deployment of components.– Remote Procedure calls using RMI or RMI over IIOP– Exposure of business logic components to web services.

• XML messages over SOAP protocol.

• A Deployment Descriptor in XML describes the EJBs residing in the server

15

Page 16: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB SERVERS• AN EJB SERVER (combination of web server and Application Server)

USUALLY CONSISTS OF:– A WEB CONTAINER: IT HANDLES THE EXECUTION OF SERVLETS AND JSP COMPONENTS (LIKE

TOMCAT).– EJB CONTAINER (APPLICATION SERVER PART): IT HANDLES THE EXECUTION ENVIRONMENT OF

THE EJBS– APPLICATION CLIENT CONTAINER: HANDLES THE EXECUTION OF CLIENT COMPONENTS.

• PROVIDES SERVICES TO A CLIENT APPLICATION:– PERSISTENCE– SECURITY– WEB SERVICES CLIENT SIDE SERVICES

– APPLET CONTAINER: PROVIDES RUN TIME ENIVIRONMENT FOR APPLETS (BROWSER, JAVA PLUG-IN).

– DATABASE SERVER: PROVIDES A DATABASE.• NOTE THAT THE ABOVE CAN VARY FROM VENDOR TO VENDOR (SOME

ARE ALL INCLUSIVE OR PARTS OF THE ABOVE)

16

Page 17: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB SERVERS

• SOME AVAILABLE EJB SERVERS ARE (PURE JAVA SERVERS):– SUN JAVA SYSTEM APPLICATION SERVER PLATFORM EDITION 9 –OPEN

SOURCE (SJSAS-9) –NOW CALLED: Sun GlassFish Enterprise Server– APATCHE GERONIMO- AN EXTENSION OF APATCHE TOMCAT WEB

SERVER TO PROVIDE EJB EXECUTION ENVIRONMENT- OPEN SOURCE– JBoss – OPEN SOURCE– JFox- OPEN SOURCE– EASY BEANS- OPEN SOURCE– OpenEJB – OPEN SOURCE– WebLogic EJB Server- NOT FREE (VENDOR: ORACLE/BEA)– IBM WEBSPHERE – NOT FREE (VENDOR:IBM)

17

Page 18: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB SERVERS• To choose the EJB application server that is right for your project,

you'll need to take a variety of issues into account, such as: – Level of support for J2EE technologies (Java JDK, Servlets, JSP, JNDI, and EJB)– Support for all (critical) platforms used within your organization – Ability to deploy and integrate into your existing technical environment, particularly support

for JMX– Development tool support– Cost, including both initial and ongoing operational and support costs– The market share of the vendor– The long-term viability of the vendor– The long-term viability of the product itself– Availability of technical support from the vendor– Availability of server source code (open source vs. closed source)– Availability of developers (to your organization) experienced with the product– Availability of training and mentoring services– Availability of books, Internet newsgroups, and so on

• Consider starting with a free EJB server such as GlassFish.

18

Page 19: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB Containers• Containers provide the run time environment for EJBs within the

Application Server. They act as an intermediary between the EJB and the Application Server

19

Application Server

Instance of

container

Instance of

container

EJB #1

EJB #2

EJB #3

Page 20: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB Containers

• Services provided by the container are:– Activation and deactivation of EJB.– Caching the state of an Entity Bean.– Committing and rolling back transactions ( a group of SQL statements).– Maintains a pool of EJB instances ready for incoming requests.– Ensures that threading conditions within the Bean are satisfied.– Synchronizes data between an Entity Bean and persistent storage (the

database).

20

Page 21: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB Containers

21

EJB

CLIENT REQUEST

CONTAINER

TRANSACTION MANAGEMENTPERSISTENCE

SECURITY

SERVICES PROVIDED DURING RUNTIME

EJB CONTEXT

JNDI

CALLBACKS

BEAN INTERACTIONS WITH THE CONTAINER

EJB CONTEXT: CAN GET A REFERENCE TO THE CONTAINER METHODS SO THAT THE BEAN CAN INTERACT WITH THE CONTAINERJNDI: ALLOWS ACCESS BY THE BEAN TO OTHER RESOURCES LIKE JDBC CONNECTIONS, OTHER BEANS, PROPERTIES SPECIFIC TO THE BEANCALLBACKS: THE CONTAINER USES CALLBACKS TO INFORM THE BEAN OF VARIOUS EVENTS.

Page 22: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB Containers– MOST CONTAINERS USE THE RMI OR COBRA OR RMI OVER IIOP

PROTOCOLS.

• THE PREVIOUS SLIDE THEN SHOWS THAT THE EJB CONTAINER PROVIDES:– Beginning, committing, and rolling back transactions as necessary.– Maintaining pools of enterprise bean instances ready for incoming

requests and moving these instances between the inactive pools and an active state, ensuring that threading conditions within the bean are satisfied.

– Most importantly, automatically synchronizing data in an entity bean's instance variables with corresponding data items stored in persistent storage.

– Note: Persistent Storage refers to the saving of data in a database

22

Page 23: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

EJB Containers• For each enterprise bean, the container is responsible for :

– registering the object, – providing a remote interface for the object, – creating and destroying object instances, – checking security for the object, – managing the active state for the object, – and coordinating distributed transactions. – Optionally, the container can also manage all persistent data within

the object.

23

Page 24: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Example EJB Architecture

24

Client HTML

or Applet

Client Tier(Presentation Layer)

Internet

Web Server

Servlet

JSP

Web TierWHERE WEBMODULES ARE DEPLOYED

Session Bean

Entity Bean

Entity Bean

DB1

DB2

Business Logic Tier Data Tier

Beans are located inDistributed Application Servers

------Middle Tier----------------EIS Tier----------------------

Page 25: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Deploying The Enterprise Application

• The next slide shows how the previous architecture can be deployed.

• Notice that we have combined and renamed the tiers as:– Client tier– Middle Tier– Enterprise Information System (EIS) tier (it has the existing

applications, files, and databases).• Notice that the EIS tier can be accessed by a client in a

number of different ways!!

25

Page 26: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Deploying The Enterprise Application

26

Page 27: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

APIs Supported by the Servers• The following application program interfaces (APIs) are available for J2EE

client applications, web servers, and EJB servers:– JMS: The Java Message Service is the API for sending and receiving messages via

enterprise messaging systems like IBM MQ Series and TIBCO Rendezvous. – JAAS: The Java Authentication and Authorization Service is used to authenticate and

authorize access controls on users. – JAXP: The Java API for XML Parsing provides support for the industry standard SAX and

DOM APIs for parsing XML documents, as well as support for XSLT transform engines. – JDBC: The JDBC API is for accessing databases from Java using a call-level interface. – SQLJ: The SQLJ API is for accessing databases from Java using embedded SQL.– JDO: The JDO API is for accessing databases from Java using a transparent persistence

interface.

27

Page 28: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

APIs Supported by the Servers

• The following APIs are not available for J2EE client applications, but are available for J2EE web servers and EJB servers:

• JTA: The Java Transactions API is the API for managing and coordinating transactions across heterogeneous systems.

• JavaMail: This is the API for sending and receiving email. • JAF: JavaMail uses the JavaBeans Activation Framework.• Connectors: These connect to non-J2EE system

28

Page 29: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

More on Session Beans• In a stateful session bean the instance variables values of the

object that represents the bean are saved for the duration that the bean is alive (the client’ s session). When client removes the session the state is lost.– The client makes invocations on the methods of the bean which can

change the state. The new state is saved during the time that the bean is waiting for a new invocation.

– Another name for the state of a stateful bean is “conversation state”.– Dedicated to a specific client

• A stateless bean does not retain the state. It gives up the state as soon as the method (of the bean) that has been invoked terminates.– Can support many clients

29

Page 30: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

More on Session Beans• Three types of a client access to a session bean:• Remote access

– The session bean offers location transparency to the client. It can be run by the same JVM as the client or by a different JVM.

– The client can be a servlet ( a web component) or a java application or another EJB.

– The client accesses the bean via interfaces that define methods that define the client’ s view of the bean.

@Remote public interface MyAccount{

public void deposit(double d);public double withdraw(double w);

} @Remote public class BankAccount implements MyAccount{ ……….. }

30

Page 31: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

More on Session Beans

• Local access:– Client must run in same JVM as the bean.– Client can be a web component (i.e. servlet ) or another bean.– Location of the bean is not transparent to the client.– It is the default access type if the access type is not specified in the

interface. @Local public interface MyInterface {…….. } @Local public class MyBean implements MyInterface {…………. }

31

Page 32: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

More on Session Beans

• Web Service access– This kind of access is devoted to clients which are web services. – The web services clients do not have to be written in Java. – It is beyond the scope of this course!

32

Page 33: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

More on Session Beans

• To Develop a Session Bean the following files are needed: Enterprise Bean class: This is the class that implements the

methods of the interface. Business Interface: Defines the business methods that the

client can invoke.Helper classes: Any other classes needed by the bean.

• The files must be packaged in a EJB jar file.Note: An EJB application consists of a number of EJB jar files that

are assembled into an EAR (Enterprise Archive) file.THE EAR COMBINES THE EJB JAR FILES AND THE WEB MODULE JAR FILES

(WEB TIER FILES LIKE SERVLETS/JSP)

33

Page 34: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Life Cycle of a Session Bean

• Stateful Session Bean:– Does Not Exist state – Client brings it to Ready state by getting a

reference of the bean.– Ready State--- Client can invoke its business methods.– Passive State---- Container can place the bean in the passive state

which means that it transfers the bean to secondary storage. Container can bring the bean back to Ready state if the client invokes one of its methods.

• Stateless Session Bean:– Does Not Exist– Ready

• Message Driven Bean: Similar to Stateless Session Bean states

34

Page 35: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Packaging WEB MODULES• A WEB APPLICATION CAN BE BUILT USING AN ENVIRONMENT LIKE

NETBEANS OR IT CAN BE DEVELOPED MANUALLY.– IT COULD BE DEVELOPED OUTSIDE NETBEANS AND IMPORTED INTO

NETBEANS OR– IT CAN BE TREATED INDEPENDENT OF NETBEANS

• A WAR FILE IS NEEDED TO PACKAGE THE WEB APPLICATION (SIMILAR TO THE WAR FILE IN TOMCAT).– THE WAR FILE CAN BE CREATED WITH NETBEANS DURING THE BUILD PROCESS

OR– IT CAN BE CREATED MANUALLY BY USING THE ANT TOOL (PART OF THE SUN

JAVA SYSTEM APPLICATION SERVER-9) OR– BY MANUALLY USING THE JAR COMMANDS.

35

Page 36: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Deploying WEB MODULES• YOU NEED A DEPLOYMENT DESCRIPTOR (SIMILAR TO web.xml in Tomcat)

– THE DEPLOYMENT DESCRIPTOR IN THE APPLICATION SERVER IS CALLED: sun-web.xml– THE DEPLOYMENT DESCRIPTOR CONTAINS CONFIGURATION INFORMATION INCLUDING

THE NAME OF THE CONTEXT ROOT OF YOUR APPLICATION.– THE FILE sun-web.xml RESIDES IN THE WEB-INF FOLDER OF YOUR ROOT CONTEXT (NOT

ANY DIFFERENT THAN TOMCAT)– IT CAN BE CREATED AND EDITED IN NETBEANS OR MANUALLY.

• DEPLOYMENT CAN BE ACCOMPLISHED EITHER VIA NETBEANS OR – BY USING THE ADMINISTRATIVE CONSOLE OF THE JAVA APPLICATION SERVER OR – BY USING THE ANT TOOL OF THE JAVA APPLICATION SERVER

• ONCE THE APPLICATION IS DEPLOYED IT CAN BE VIEWED BY A BROWSER (IF THE BEAN HAS A WEB CLIENT).

http://localhost:8080/contextrootname/

36

Page 37: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish• Glass Fish is a combination of web modules

environment and application server for EJBs– It takes the place of the Java System Application

Server Platform 9 (it includes it) now called GlassFish– It is part of NetBeans.– Provides centralized monitoring and management,

Clustering for scalability and availability. It is part of the Sun GlassFish Portfolio open Web application platform that combines open-source software and support in a single package.

– It includes a web server (DO NOT START TOMCAT IF GLASSFISH IS THE SERVER USED).

37

Page 38: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish

• Both Web Modules and EJB Modules can be developed using NetBeans

• They get deployed in GlassFish (or earlier versions of it like Java System Application Server Platform 9).

• You need to register a local instance of GlassFish / Sun Java System Application Server with the NetBeans IDE. The GlassFish application server is bundled with the NetBeans IDE. If you installed the application server as an option when you installed the NetBeans IDE, the server should already be registered with the IDE.

38

Page 39: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish

• Sun GlassFish Enterprise Server administration includes many tasks such as – deploying applications,– creating and configuring domains, server instances and

resources,– controlling (starting and stopping) domains and server

instances, – managing profiles and clusters, – monitoring and managing performance, – and diagnosing and troubleshooting problems.

39

Page 40: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish

• Administration of Glass Fish can be accomplished via one of the following methods:– Admin Console– Command-line Interface (asadmin Utility) – JConsole

40

Page 41: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish

• Admin Console• The Admin Console is a browser-based tool that features an easy-to-

navigate interface and online help. • The administration server (also called the Domain Administration Server

or DAS) must be running to use the Admin Console. • To launch the Administration Console, you must know the administration

server hostname and port number. When the Enterprise Server was installed, you chose a port number for the server, or used the default port of 4848. You also specified a user name and master password.

• To start the Admin Console, in a web browser type:• http://hostname:port i.e http://localhost:4848/

41

Page 42: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish

• The installation program creates the default administrative domain (named domain1) with the default port number 4848, as well as an instance separate from the domain administration server (DAS).

• After installation, additional administration domains can be created.

• Each domain has its own domain administration server, which has a unique port number.

• When specifying the URL for the Admin Console, be sure to use the port number for the domain to be administered.

42

Page 43: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish• Command-line Interface (asadmin Utility)- Primarily for UNIX/Linux

Systems.• The asadmin utility is a command-line interface for the Sun GlassFish

Enterprise Server. Use the asadmin utility and the commands associated with it to perform the same set of administrative tasks offered by the Admin Console.

• To start the asadmin utility, go to the as-install/bin directory and enter:• $ ./asadmin To list the commands available within asadmin:• asadmin> help It is also possible to issue an asadmin command at the

shell’s command prompt:• $ asadmin help To view a command’s syntax and examples, type help

followed by the command name. For example:• asadmin> help create-jdbc-resource

43

Page 44: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Administration of Glass Fish

• JConsole• JConsole is used to monitor the Sun GlassFish Enterprise

Server. You can use either the JConsole remote tab, or the advanced tab to connect to the Enterprise Server.

• Remote Tab: identify the username, password, administration server host, and JMS port number (8686 by default), and select Connect.

• Advanced Tab: identify the JMXServiceURL as service:jmx:rmi:///jndi/rmi://host:jms-port/jmxrmi and select Connect. The JMXServerURL is printed in the server.log file as well as output in the command window of the domain creation command.

44

Page 45: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains

• The Enterprise Server consists of one or more domains.• A domain is an administrative boundary or context. Each

domain has an administration server (also called Domain Administration Server or DAS) associated with it and consists of zero or more standalone instances and/or clusters.

• Each cluster has one or more homogeneous server instances. A server instance is a single Java Virtual Machine (JVM) that runs the Application Server on a single physical machine. Server instances (whether standalone or clustered) in a domain can run on different physical hosts.

45

Page 46: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains• A domain is a group of instances that are administered together. • An application server instance can belong to just one domain. • In addition to the administration boundary, a domain provides /facilitates:

– the basic security structure whereby different administrators can administer specific groups (domains) of application server instances.

– by grouping the server instances into separate domains, different organizations and administrators can share a single Enterprise Server installation.

– each domain has its own configuration, log files, and application deployment areas that are independent of other domains. If the configuration is changed for one domain, the configurations of other domains are not affected.

46

Page 47: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains

• The Sun GlassFish Enterprise Server installer creates the default administrative domain (named domain1).

• It also creates an associated domain administration server (named server). You must provide the administration server port number. The default administration server port is 4848. The installer also queries for the administration username and master password. After installation, additional administration domains can be created.

• Each domain has its own Domain Administration Server (DAS) with a unique port number. The Admin Console communicates with a specific DAS to administer the associated domain. Each Admin Console session allows you to configure and manage the specific domain.

47

Page 48: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains• The DAS authenticates the administrator, • accepts requests from administration tools, • and communicates with server instances in the domain to carry out the

requests. • The DAS is sometimes referred to as the admin server or default server. It

is referred to as the default server because it is the only server instance that gets created on Sun GlassFish Enterprise Server installation and can be used for deployments. The DAS is simply a server instance with additional administration capabilities.

• Each Admin Console session allows you to configure and manage a single domain. If you created multiple domains, you must start an additional Admin Console session to manage the other domains. When specifying the URL for the Admin Console, be sure to use the port number of the DAS associated with the domain to be administered.

48

Page 49: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains

• Every administrative domain is associated with a usage profile, which identifies the capabilities of that domain. Enterprise Server provides the following profiles:– Developer– Cluster (A cluster is a named collection of server instances

sharing the same set of applications, resources, and configuration information)

– EnterpriseNote: Use Developer or Enterprise for your work in this course.Note: Security settings vary between profiles.

49

Page 50: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Glass Fish Domains

• In a development environment you can use different application server instances to test different Enterprise Server configurations, or to compare and test different application deployments. Because you can easily add or delete an application server instance, you can use them to create temporary sandbox area for experimentation purposes.

50

Page 51: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

Client’s Ports

• Remote clients of enterprise beans (EJB components) access the beans through the IIOP listener. – The IIOP port for the remote clients is : 3700

(default)– Secured IIOP post is :3820– HTTP Port is : 8080 (unless there is a conflict)– Secured HTTP port is:8181– Java Message Services Port: 7676

51

Page 52: 1 Lecture 14 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.

STUDY GUIDE

• Review Chapters 1 and 2 of Java EE 6 Tutorial• Java EE 6 Tutorial- chapters 14,15,16

52