Thursday, May 8, 2014

WAS 8.5 - Architecture

WHAT IS WEBSPHERE:



Family of Software products from IBM
WebSphere Application Server, being the most popular, is an implementation of JEE (Java Platform Enterprise Edition) specification
Extends JEE by providing several features and Services
Is the runtime environment for your JEE Applications

Equivalent products from other Vendors are Oracle WebLogic, JBOSS,Oracle GlassFish

WAS 8.5 Core Components:




Web Container:

Runs JEE compliant Web Applications that contain Servlets,JSPs and static HTML pages
Handles HTTP Sessions
Runs Portlets (using a Portlet Container) and SIP (Session Initiation Protocol) Applications (using a SIP container)
Provides Transport Chain that includes TCP Inbound Channel, HTTP inbound channel and Web Container Channel
There is one Web Container per Application Server


EJB Container:



Provides runtime for EJBs (Enterprise Java Beans)
EJBs handle business logic and can manage data access (Entity EJBs)
EJB Container provides threading and transaction support
EJBs are packaged as JAR files (Java archive) and deployed as EJB modules

Clients:

Clients can be one of the following:

- Application Clients: Run in a JEE compliant Client container (installed separately from the Application Server). launchClient tool can be used to start the client

- Web Clients: Most common. This is typically the Web Browser

- Web Services client

- Admin Client: wsadmin and Admin Console Web Application


Web Services Infrastructure:

Application Server acts as both Web Services client and Server

- Web Services are reusable Web Applications that can be described,published,discovered and invoked over Network. They implement SOA (Service Oriented Architecture.

-Under the cover, Web Service operations are executed as Servlets


Messaging Infrastructure:

Full support for JMS (Java Messaging Service)

- Message Providers: Default Messaging Provider,WebSphere MQ Provider, Generic JMS Provider

- Providers use JCA (Java Connector Architecture) to communicate with JMS destinations (Queues or Topics)

- Concept of inbuilt JMS Server has been replaced since Version 6


Service Integration Bus:


- Integrated Communication infrastructure for Messaging and SOA Applications

- Contains Messaging Engines and acts as a JMS Provider

- Contains destinations (Web Service endpoints, Messaging Queues or Topics)

- Contains a Message Store

You can make an external Web Service available at a service destination


Data Access:

WAS uses JCA to access external Data Sources such as EIS, RDBMS
JCA requires a Resource Adapter to be provided by the EIS Vendor
Resource Adapter is a system level driver that enables WAS to communicate with the Data Provider
Resource Adapters are plugged into WAS
WAS provides pre defined RDBMS Resource Adapter

Naming and Directory:



Each Application Server runs a JNDI Naming Service which enables Applications to register and look up resources
WAS provides distributed Name Space for scalability
Objects are bound in hierarchical structure in Name Space
dumpNameSpace tool exports the Name space for troubleshooting

Transactions Infrastructure:

-Transactions are multiple operations on resources co ordinated as one unit of work
- Transaction Manager, part of WAS handles transactions. Also participates in other transaction managers on Global Transactions
- Operations are rolled back in case of failure
- Transactions can be container managed or bean managed.
- Transactions are tracked through logs 

Other Services provided by WAS:

•       Java Mail
•       Resource References: Enables to specify logical names in deployment descriptors that bind to physical resources. Logical names are then accessible through JNDI lookups
•       Scheduler: Runs tasks at specified times or intervals. Tasks can be prioritized
•       Asynchronous Beans: Enables a resource intensive task to be run as multiple tasks
•       Startup Beans: Runs your code on WAS startup or shutdown
•       Dynamic Cache: Greatly improves performance of Web Applications. Can replicate Cache among clusters
•       Object Pools: Improves performance by reducing object instantiation time
•       Activity Sessions: Enables grouping of  operations on multiple one-phase commit resources
•       Internationalization: Enables application to process information based on the geographical location of the client

Security Infrastructure:


- Solid security at various tiers in the architecture (end to end)
- Support for federated user repositories and Security domains
- Support for strong encryption (SSLv3/TLS)
- Efficient SSL Certificate Management
- Supports Java 2 Application level security

High Availability Infrastructure:


- Support for Application Server Clusters
- Data among the cluster members are replicated either using memory-to-memory replication or using Database
- HA Manager, which runs in each Application Server provides the framework for communication among cluster members. 
- Dynamic Clusters: Balance workload among cluster members based on the performance, dynamically. Can expand or contract.


Performance Infrastructure:


PMI (Performance Management Infrastructure) makes metrics available through Management Beans
Tivoli Performance Viewer can be used to view current activity and summary reports via WAS Admin Console
Tivoli Performance Viewer Advisor provides advice to tune inefficient settings
Performance and Diagnostic Advisor prints warning messages in SystemOut.log about inefficient settings


Liberty Profile:


A profile defines the runtime environment
- Is a lightweight Application Serving environment mostly used in Development environments
- Uses OSGI framework (Pluggable modules)
- Supports Web Applications, OSGI Applications and JPA
- Very fast startup
- Deploy applications using 'dropins' or by updating configuration
- Comprises of JVM, Liberty Kernel and Features (OSGi bundles)
- server.xml is the server configuration file
- Updates to configuration file is read by File Monitor Service. Features are loaded dynamically.
- Features to be loaded are specified in the server.xml 
<server>
<featureManager>
<feature>servlet-3.0</feature>
</featureManager>
</server>
- Security as per Servlet 3.0 specification
- Web Container delegates security check to WebSecurity Collaborator which talks to Authentication Service first to create 'subject' and then to authorization service to perform authorization check
- You can use the quickStartSecurity element in server.xml to quickly grant access to one user
- Auth Constraints can be defined in the deployment descriptor (web.xml)


Full Profile:


- Meant for Production environments (can be used in Development a well)
- Full blown product with all the bells and whistles
- Main components: Application Servers, Clusters, Resources, Administration
- Supports the three-tier architecture (Presentation, Business Logic, Data/ERP)

Topologies:


- Various components in any Topology:
- Application Servers
- Application Server Clusters
- Nodes
- Node Agents
- Deployment Manager
- Web Servers
- Profiles
- Cell

Various Topologies:


- Standalone
- Network Deployment - Nodes from same platform
- Network Deployment - Nodes from various platforms
- Flexible Management