Wednesday, July 1, 2009

WebSphere AS Architecture

Three-tier architecture
- Presentation Layer (Client)
- Application Logic Layer
- Network Resources
Packages

WAS-XD improves system availability, maintaining multiple instances of key components so that services can be switched from one server to another.
WAS-EE improve many different aspects of the network's operation. For example, the APIs included in Extended Messaging Support make it easier to deal with incoming asynchronous messages. Other extensions allow you to process query statements at runtime, support interruptible and compensated workflows, and manage transactions better.

WebSphere components
- EJB Container
- Web Container
- Application Client Container
- Applet Container
- Embedded HTTP Server
- Virtual Host (Fence off data, only makeing it accessible to resources installed on the same virtual host)


Support for EJB
- Local, remote, and message-driven beans
- Container-managed relationships and association relationships
- Portable finder query language
- Programming model
- Abstract and Concrete entity beans
- Local Home and Local Entity Interfaces
- EJB query language

Enhancement Features
- Changing semantic behavior
- Entity bean inheritance
- Optimistic concurrency control
- Read-ahead (minimize the number of database roundtrips by retrieving a working set of container-managed persistence (CMP) beans for the transaction within one query)
- Intent mechanism support
- Backend access support
- SQLJ
- Data caching

Enhance CMP performance
- bean data caching
- long lifetime caching
- optimistic currency control
- read-ahead

Activity Session (enables the user to group transactions into work units. You can associate various properties and configurations with an activity session)
Web Services Functionality
- Application lifecycle events
- autoRequestEncoding and autoResponseEncoding
- Classes and servlets
- Filters
- HTTP session support (in-memory, persistent-to-database, memory-to-memory)
Common Object Request Broker Architecture (CORBA) clients can access WebSphere Application Server CORBA C++ servers and WebSphere Application Server EJB servers. WebSphere also provides a basic CORBA environment that can bootstrap into the J2EE name space and invoke J2EE transactions. New support features include SSL security for CORBA C++ clients.

Web Service Support
- XML
- UDDI
- SOAP
- WSDL

Naming Support
- Instead of binding an object, it is bound to the server root context, or a context specific to the server associated with the object.
-Name Server runs in its own process instead of the administrative server's process

Changes to dynamic caching
- caching support (servlet and JSP results caching, command caching, pattern caching, and web services caching)
- dynamic caching engine (disk overflow, Least Recently Used (LRU), mgmt, XML cache policy mgmt, invalidation mgmt, and external cache support for IBM WebSphere Edge and IBM HTP Server Fast Response Cashe Accelerator)
- dynamic network caching (caching is performed within the context of J2EE and caching behavior is described in XML cache policy files)
- dynamic servlet caching (by configuring caching through the cachespec.xml file format)

I18N
- Change Currency
- Change character sets

Application and Service choreography

WebSphere Platform Infrastructure

- node
- configuration repository
- virtual hosts (is not linked to a specific node, it can be created, but cannot be started or stopped)
- admin service
- session database (for multiserver environment)
- scripting client

Network Deployment platform components


- Support multiple nodes. Each node has a node agent component and a number of application servers. These are all run within an administrative unit called a cell, which resides within the Deployment Manager. You can use a Network Deployment cell to configure clusters of load-balanced application servers.
- The Deployment Manager administers the configuration and application binaries of the components in a cell. They are divided out to local copies on each node.

Edge Components offer an efficient and economic means of hosting web-accessible content and providing Internet access. The software typically runs on machines that are in proximity to the boundary between an enterprise intranet and the Internet.

Edge Components include the caching proxy and load balancer, which help administrators to provide improved levels of service to internal and external users with access to documents on enterprise server machines.

A cluster is a logical arrangement of application server processes designed for workload balancing. Application servers that are part of a cluster are "members" of that cluster and must have identical application components deployed on them. Cluster members are not required to share any configuration data.

Cluster members can be situated on a single node (vertical cluster), over a number of nodes (horizontal cluster), or a mixture of the two.

Managed Servers or Processes

- Deployment Manager (Network Deployment Only)

- Node Agent (Network Deployment Only)

- Application Server (Base and Network Deployment)

- JMS Server (Network Deployment Only)


Network Deplyment

- Multiple WAS instances

1. Application Servers (multiple instances from a single installation of WAS)

2. Deployment Manager (multiple instances from a single installation of Network Deployment)


- Multiple server instances using a single installation (It is possible to configure multiple Deployment Managers for a single Network Deployment installation but these Deployment Managers are incapable of providing mutual failover or clustering support)
- Coexistence of WAS and ND
- Disadvantage: if something happens to either the WebSphere Application Server or Deployment Manager that results in the reconstruction of the node, the other component needs to be relocated
- A Single web server for coexisting, multiversion application servers on one machine
- A Single web server for multiple instances of WAS
- Standalone web servers for each application server instance when running multiple instances of WAS

Topology Considerations
- Availability (Horizontal scaling, Vertical Scaling, IP sprayer)
1. Hardware and process redundancy
2. Process Isolation
3. Load balancing
4. Failover support
5. Hardware-based high availability
- Maintainability (Inherent considerations for updating system hardware and software. Maintainability can clash with other topology considerations and can lead to shortcomings in throughput, performance, and availability)
- Performance
1. Vertical scaling: provision of software/application server failover as well as load balancing over a number of JVM application server processes. It enables an administrator to examine an existing application server for performance holdups.
2. Horizontal scaling: Creation of extra application server processes on multiple physical machines, harnesses additional processing power from each machine. This provides hardware failover support, and an administrator can apportion implementation costs among multiple physical machines.
- Security (A recommended security configuration is to use two firewalls to create a demilitarized zone (DMZ). Information in the DMZ is somewhat protected due to protocol filtering between the Internet and the DMZ. A web server can intercept requests and direct them through the next firewall. The vulnerable application and business data elements exist intthe space behind the second firewall, which filters by IP address or domain)

- Session Management
1. Database persistance
2. Memory-to-Memory Replication (replication of session data between the memories of individual application server JVMs. WebSphere internal Messaging is a JMS publish/subscribe mechanism that provides assured session replication between the JVM processes. It does this by leveraging the internal JMS provider provided with WebSphere Application Server and so a database product is not essential for persistence.
- Scalability (Configure multiple machines to boost processing power, enhance security, maximize availability, and balance workloads)
1. WebSphere Application Server cluster support
2. WebSphere workload management (WLM) (in front of clustering)
3. IP sprayer (Redirects incoming HTTP requests transparently from web clients to a group of web servers. Intercepts all requests and disseminates them to the full range of web servers in the group. IP sprayers such as Cisco Local Director provide scalability, load balancing, and failover for web servers)

Topology Terminology
1. Web Presentation Server Node
2. Database Server Node
3. Domain and Protocol Firewall Nodes
4. Directory and Security Services Node
5. Web Application Server Node
6. Web Server Redirector node and application server Node
7. Load Balancer Node
8. Deployment Manager

Supported Network Topologies
1. Vertical Scaling (multiple app server instances on a single machine)

2. HTTP server separation


2.1 Supporting Network Address Translation (NAT) firewalls
2.2 Preventing data access from DMZ
2.3 Underpinning load balancing and failover
2.4 Simplifying administration
2.5 Alleviating congestion
2.6 Supporting Secure Sockets Layer (SSL) encryption

3. Reverse Proxy (resides in DMZ and forwards traffic to and from a web server, which now resides on the same machine as the application server)


4. Multi-Tiered (Divides the application server processes into servlet application servers (close to HTTP server) and EJB application servers (close to application data). This is beneficial from security and performance perspectives)

5. Horizontal Scaling with Clusters
6. Horizontal Scaling with IP Sprayer
Simple IP Sprayer

Complex IP Sprayer

7. Multiple WebSphere cells
Advantages
1. Isolates hardware and software failure
2. Prevents outages
3. Improves Performance

8. Multiple Clusters on a node

Advantages
1. Enhanced throughput
2. Improved performance
3. Hardware failover
4. Application software failover
5. Process isolation

9. Combined

- Two WebSphere cells
- Two load balancer nodes
- Two HTTP servers for each cell with the web server plug-in
- Four application server machines for each cell
- The use of application server clusters for both vertical and horizontal scaling
- Two database servers for each cell, which host mirrored copies of the application database

1 comment:

  1. Well excellent guide you have shared here and through this post i got great knowledge about this. concept.
    domain registration india

    ReplyDelete