Friday 18 May 2012

SOA Governance


SOA Governance Best Practices
Integrated SOA Governance promotes the core SOA governance best practices of:

  • Governance Automation
  • Uniform Policy Management
  • Metadata Federation
  • Service Virtualization
  • Trust and Management Mediation
  • Continuous Compliance and Validation
  • Change Impact Mitigation
  • Consumer Contract Provisioning




Governance Automation
Governance Automation ensures scalability of enterprise processes implementing a lifecycle management workflow to implement development approval processes, integrated provisioning and lifecycle management, and inter-departmental contract management and negotiation.

Uniform Policy Management
Uniform Policy Management ensures consistent policy definition, implementation, enforcement, validation, and audit through all stages of the lifecycle, and across all distributed and mainframe platforms.  It ensures that services can be leveraged as first-class citizens throughout an enterprise SOA by complying with enterprise policies that are uniform across all platforms.

Metadata Federation
Metadata Federation provides seamless, heterogeneous SOA Governance and standards-based support for governance automation (UDDIv3, WS-MEX, WS-Policy) to ensure that governance processes are uniformly applied across all platform investments. When metadata is federated and consistent across multiple governance platforms, the business value of service (cost, usage, production issues) becomes visible and measurable across the enterprise service lifecycle.

Service Virtualization
Service Virtualization provides location-transparency, service mobility, impedance tolerance and reliable service delivery without requiring a re-platforming of existing platforms or introducing yet another service platform to support the required solution architecture.

Trust and Management Mediation
Trust and Management Mediation ensures interoperability across disparate partners and platforms, trust enablement and trust mediation complementing threat prevention systems.  It provides provide last-mile security, metric collection and reporting, SLA monitoring and management, to ensure that services are governed, managed, and secured, and policy implementation and mediation to allow consumers to communicate with a wide range of mission critical business services exposed from any platform.

Continuous Compliance and Validation
Continuous Compliance and Validation ensures consistent policy implementation and enforcement across all stages of the lifecycle, preserving the fidelity of the governance models, structures and mechanisms supporting enterprise SOA programs and ensure the relevance, applicability and suitability of services.

Change Impact Mitigation
Change Impact Mitigation provides change management and impact analysis processes integrated with the governance workflow to ensure that changes to services or other assets don’t cause major outages by breaking the consumption model.

Consumer Contract Provisioning
Consumer Contract Provisioning provides offer, request, negotiation and approval workflows for service access, capacity, SLA and policy contracts.  It ensures that the service provides know which applications and users are consuming their services and allows them to treat different consumers with different priorities and service levels.

Friday 11 May 2012

Cluster Overview


Cluster Defination

1) In a computer system, a cluster is a group of servers and other resources that act like a single system and enable high availability and, in some cases, load balancing and parallel processing. See clustering.

2) In personal computer storage technology, a cluster is the logical unit of file storage on a hard disk; it's managed by the computer's operating system. Any file stored on a hard disk takes up one or more clusters of storage. A file's clusters can be scattered among different locations on the hard disk. The clusters associated with a file are kept track of in the hard disk's file allocation table (FAT). When you read a file, the entire file is obtained for you and you aren't aware of the clusters it is stored in.

Since a cluster is a logical rather than a physical unit (it's not built into the hard disk itself), the size of a cluster can be varied. The maximum number of clusters on a hard disk depends on the size of a FAT table entry. Beginning with DOS 4.0, the FAT entries were 16 bits in length, allowing for a maximum of 65,536 clusters. Beginning with the Windows 95 OSR2 service release, a 32-bit FAT entry is supported, allowing an entry to address enough clusters to support up to two terabytes of data (assuming the hard disk is that large!).

The tradeoff in cluster size is that even the smallest file (and even a directory itself) takes up the entire cluster. Thus, a 10-byte file will take up 2,048 bytes if that's the cluster size. In fact, many operating systems set the cluster size default at 4,096 or 8,192 bytes. Until the file allocation table support in Windows 95 OSR2, the largest size hard disk that could be supported in a single partition was 512 megabytes. Larger hard disks could be divided into up to four partitions, each with a FAT capable of supporting 512 megabytes of clusters.

3) In some products, a cluster is a group of terminals or workstations attached to a common control unit.


Cluster Computing
In computers, clustering is the use of multiple computers, typically PCs or UNIX workstations, multiple storage devices, and redundant interconnections, to form what appears to users as a single highly available system. Cluster computing can be used for load balancing as well as for high availability. Advocates of clustering suggest that the approach can help an enterprise achieve 99.999 availability in some cases. One of the main ideas of cluster computing is that, to the outside world, the cluster appears to be a single system.

A common use of cluster computing is to load balance traffic on high-traffic Web sites. A Web page request is sent to a "manager" server, which then determines which of several identical or very similar Web servers to forward the request to for handling. Having a Web farm (as such a configuration is sometimes called) allows traffic to be handled more quickly.

Clustering has been available since the 1980s when it was used in DEC's VMS systems. IBM's Sysplex is a cluster approach for a mainframe system. Microsoft, Sun Microsystems, and other leading hardware and software companies offer clustering packages that are said to offer scalability as well as availability. As traffic or availability assurance increases, all or some parts of the cluster can be increased in size or number.

Cluster computing can also be used as a relatively low-cost form of parallel processing for scientific and other applications that lend themselves to parallel operations. An early and well-known example was the Beowulf project in which a number of off-the-shelf PCs were used to form a cluster for scientific applications.

High availability
High availability is a system design approach and associated service implementation that ensures a prearranged level of operational performance will be met during a contractual measurement period.
Users want their systems, for example wrist watches, hospitals, airplanes or computers, to be ready to serve them at all times. Availability refers to the ability of the user community to access the system, whether to submit new work, update or alter existing work, or collect the results of previous work. If a user cannot access the system, it is said to be unavailable. Generally, the term downtime is used to refer to periods when a system is unavailable.

Some availability experts emphasize that, for any system to be highly available, the parts of a system should be well-designed and thoroughly tested before they are used. For example, a new application program that has not been thoroughly tested is likely to become a frequent point-of-breakdown in a production system.

Load Balancing
Distributing processing and communications activity evenly across a computer network so that no single device is overwhelmed. Load balancing is especially important for networks where it's difficult to predict the number of requests that will be issued to a server. Busy Web sites typically employ two or more Web servers in a load balancing scheme. If one server starts to get swamped, requests are forwarded to another server with more capacity. Load balancing can also refer to the communications channels themselves.
Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid overload. Using multiple components with load balancing, instead of a single component, may increase reliability through redundancy. The load balancing service is usually provided by dedicated software or hardware, such as a multilayer switch or a Domain Name System server.



Architectural and Cluster Terminology
This section defines terms used in this document.

Architecture
In this context the architecture refers to how the tiers of an application are deployed to one or more clusters.

Web Application Tiers
A Web application is divided into several "tiers" that correspond to the logical services the application provides. Because not all Web applications are alike, your application may not utilize all of the tiers described below. Also keep in mind that the tiers represent logical divisions of an application's services, and not necessarily physical divisions between hardware or software components. In some cases, a single machine running a single Weblogic Server instance can provide all of the tiers described below.

Web Tier
The web tier provides static content (for example, simple HTML pages) to clients of a Web application. The web tier is generally the first point of contact between external clients and the Web application. A simple Web application may have a web tier that consists of one or more machines running Weblogic Express, Apache, Netscape Enterprise Server, or Microsoft Internet Information Server.

Presentation Tier
The presentation tier provides dynamic content (for example, servlets or Java Server Pages) to clients of a Web application. A cluster of Weblogic Server instances that hosts servlets and/or JSPs comprises the presentation tier of a web application. If the cluster also serves static HTML pages for your application, it encompasses both the web tier and the presentation tier.

Object Tier
The object tier provides Java objects (for example, Enterprise JavaBeans or RMI classes) and their associated business logic to a Web application. A Weblogic Server cluster that hosts EJBs provides an object tier.

Recommended Basic Architecture
The recommended basic architecture is combined tier architecture—all tiers of the Web application are deployed to the same Weblogic Server cluster. This architecture is illustrated in the following figure.




The benefits of the Recommended Basic Architecture are:

Ease of administration
Because a single cluster hosts static HTTP pages, servlets, and EJBs, you can configure the entire Web application and deploy/undeploy objects using the Weblogic Server Console. You do not need to maintain a separate bank of Web servers (and configure Weblogic Server proxy plug-ins) to benefit from clustered servlets.

Flexible load balancing
Using load balancing hardware directly in front of the Weblogic Server cluster enables you to use advanced load balancing policies for accessing both HTML and servlets content. For example, you can configure your load balancer to detect current server loads and direct client requests appropriately.

Robust security
Placing a firewall in front of your load balancing hardware enables you to set up a De-Militarized Zone (DMZ) for your web application using minimal firewall policies.

Optimal performance
The combined tier architecture offers the best performance for applications in which most or all of the servlets or JSPs in the presentation tier typically access objects in the object tier, such as EJBs or JDBC objects

Recommended Multi-Tier Architecture

This section describes the Recommended Multi-Tier Architecture, in which different tiers of your application are deployed to different clusters.

The recommended multi-tier architecture uses two separate Weblogic Server clusters: one to serve static HTTP content and clustered servlets, and one to serve clustered EJBs. The multi-tier cluster is recommended for Web applications that:

Require load balancing for method calls to clustered EJBs.
Require more flexibility for balancing the load between servers that provide HTTP content and servers that provide clustered objects.
Require higher availability (fewer single points of failure).





Benefits of Multi-Tier Architecture

The multi-tier architecture provides these advantages:

Load Balancing EJB Methods
By hosting servlets and EJBs on separate clusters, servlets method calls to EJBs can be load balanced across multiple servers. This process is described in detail in Load Balancing Clustered Objects in a in Multi-Tier Architecture.

Improved Server Load Balancing
Separating the presentation and object tiers onto separate clusters provides more options for distributing the load of the web application. For example, if the application accesses HTTP and servlets content more often than EJB content, you can use a large number of Weblogic Server instances in the presentation tier cluster to concentrate access to a smaller number of servers hosting EJBs.

Higher Availability
By utilizing additional Weblogic Server instances, the multi-tier architecture has fewer points of failure than the basic cluster architecture. For example, if a Weblogic Server that hosts EJBs fails, the HTTP- and servlets-hosting capacity of the Web application is not affected.