{"id":3339,"date":"2011-10-28T12:55:19","date_gmt":"2011-10-28T17:55:19","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=3339"},"modified":"2012-07-09T20:24:30","modified_gmt":"2012-07-10T01:24:30","slug":"weblogic-11g-clustering-cluster-architectures","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=3339","title":{"rendered":"WebLogic 11g Clustering: Cluster Architectures"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Web_Application_Tiers\">Web Application Tiers<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Recommended_Basic_Architecture\">Recommended Basic Architecture<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Recommended_Multi-Tier_Architecture\">Recommended Multi-Tier Architecture<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Configuration_considerations\">Configuration considerations<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Recommended_Proxy_Architectures\">Recommended Proxy Architectures<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Two-Tier_Proxy_Architecture\">Two-Tier Proxy Architecture<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Multi-Tier_Proxy_Architecture\">Multi-Tier Proxy Architecture<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Security_Options_for_Cluster_Architectures\">Security Options for Cluster Architectures<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#References\">References<\/a>\n\t<\/li>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<span id=\"Web_Application_Tiers\"><h2>Web Application Tiers<\/h2><\/span>\n<p>* Web tier: provides static web content, e.g. HTML pages.<br \/>\n* Presentation tier: provides dynamic web content, e.g. Servlets and JSPs.<br \/>\n* Object tier: provides Java objects, e.g. EJBs and RMI classes, and their associated business logic.<\/p>\n<span id=\"Recommended_Basic_Architecture\"><h2>Recommended Basic Architecture<\/h2><\/span>\n<p>* Combined tier architecture: all tiers of web application are deployed to the same WebLogic Server cluster.<\/p>\n<span id=\"\"><h6><a href=\"wp-content\/uploads\/2011\/09\/wl_cluster_recommendbasicarch.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendbasicarch.gif\" alt=\"\" title=\"wl_cluster_recommendbasicarch\" width=\"545\" height=\"416\" class=\"aligncenter size-full wp-image-3309\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendbasicarch.gif 545w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendbasicarch-300x228.gif 300w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" \/><\/a><\/h6><\/span>\n<p>* Pros:<br \/>\n&#8211; Easy administration with a single cluster.<br \/>\n&#8211; Flexible load balancing with load balancer in front of WebLogic server cluster.<br \/>\n&#8211; Robust security with firewall in front of load balancer.<br \/>\n&#8211; Optimal performance for applications where most presentation tier access object tier.<br \/>\n* Cons:<br \/>\n&#8211; Single point load balancing at web tier.<\/p>\n<span id=\"Recommended_Multi-Tier_Architecture\"><h2>Recommended Multi-Tier Architecture<\/h2><\/span>\n<p>* Uses two separate clusters:<br \/>\n&#8211; One for static HTTP content and clustered servlets<br \/>\n&#8211; One for clustered EJBs<\/p>\n<span id=\"_1\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendmultitierarch.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendmultitierarch.gif\" alt=\"\" title=\"wl_cluster_recommendmultitierarch\" width=\"607\" height=\"430\" class=\"aligncenter size-full wp-image-3318\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendmultitierarch.gif 607w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_recommendmultitierarch-300x212.gif 300w\" sizes=\"auto, (max-width: 607px) 100vw, 607px\" \/><\/a><\/h6><\/span>\n<p>* Pros:<br \/>\n&#8211; EJB methods are load balanced.<br \/>\n&#8211; More server load balancing options. For example, if most client accesses are HTTP and Servlets instead of EJB, you can use bigger machines for web\/presentation cluster. On the other hand, if most computing is done at EJB, then you can use bigger machines for object cluster.<br \/>\n&#8211; Higher availability due to fewer single-points of failure.<br \/>\n&#8211; More security options. For example, you can firewall the object layer to protect it more.<\/p>\n<p>* Cons:<br \/>\n&#8211; No collocation optimization for object calls.<\/p>\n<span id=\"Configuration_considerations\"><h3>Configuration considerations<\/h3><\/span>\n<p>* More IP sockets usages:<br \/>\n&#8211; one socket for replicating HTTP session sstates between primary and secondary servers.<br \/>\n&#8211; one socket for each WebLogic server in EJB cluster, for accessing remote objects.<br \/>\n* Hardware load balancers need to maintain <em>sticky <\/em>connection to the client&#8217;s point-of-contact server in order to support in-memory session state replication.<br \/>\n* Firewall Restrictions<br \/>\n* Must bind all servers in the object cluster to public DNS names, rather than IP addresses.<br \/>\n* If internal and external DNS names of ra WebLogic Server instance are not identical, set <em>ExternalDNSName <\/em>to server&#8217;s external DNS name.<\/p>\n<span id=\"Recommended_Proxy_Architectures\"><h2>Recommended Proxy Architectures<\/h2><\/span>\n<p>* Pros:<br \/>\n&#8211; Utilizing existing web server hardware.<br \/>\n&#8211; Familiar firewall policies.<br \/>\n* Cons:<br \/>\n&#8211; Additional administration (web server not in WebLogic domain structure. Need to install plug-ins).<br \/>\n&#8211; Limited Load balancing options (unlike load balancer, round robin only).<br \/>\n* Load balancer advantages:<br \/>\n&#8211; No need to maintain proxy servers.<br \/>\n&#8211; No need to install proxy plug-ins.<br \/>\n&#8211; More load balancing strategies (proxy plug-ins support only round robin).<\/p>\n<span id=\"Two-Tier_Proxy_Architecture\"><h2>Two-Tier Proxy Architecture<\/h2><\/span>\n<p>* Similar to recommended basic architecture except that static HTTP servers are hosted on a bank of web servers.<br \/>\n* Web Layer cluster: servers only static HTTP content.<br \/>\n&#8211; WebLogic Server with the HttpClusterServlet.<br \/>\n&#8211; Apache with WebLogic Server apache Server (proxy) plug-in.<br \/>\n&#8211; Netscape Enterprise Server with the WebLogic NSAPI proxy plug-in.<br \/>\n&#8211; Microsoft IIS with WebLogic Server IIS proxy plug-in.<\/p>\n<span id=\"_2\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_twotierproxyarch1.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_twotierproxyarch1.gif\" alt=\"\" title=\"wl_cluster_twotierproxyarch\" width=\"543\" height=\"437\" class=\"aligncenter size-full wp-image-3320\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_twotierproxyarch1.gif 543w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_twotierproxyarch1-300x241.gif 300w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/h6><\/span>\n<span id=\"Multi-Tier_Proxy_Architecture\"><h2>Multi-Tier Proxy Architecture<\/h2><\/span>\n<p>* Similar to recommended multi-tier architecture except that static HTTP servers are hosted on a bank of web servers.<\/p>\n<span id=\"_3\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_multitierproxyarch.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_multitierproxyarch.gif\" alt=\"\" title=\"wl_cluster_multitierproxyarch\" width=\"542\" height=\"524\" class=\"aligncenter size-full wp-image-3321\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_multitierproxyarch.gif 542w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/wl_cluster_multitierproxyarch-300x290.gif 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/h6><\/span>\n<span id=\"Security_Options_for_Cluster_Architectures\"><h2>Security Options for Cluster Architectures<\/h2><\/span>\n<p>* Place a firewall in front of load balancer or proxy server to provide first line of defense.<br \/>\n* Optionally, place a second firewall in front of database to provide database security.<\/p>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p>* <a href=\"http:\/\/download.oracle.com\/docs\/cd\/E17904_01\/web.1111\/e13709\/planning.htm#BCGIAJEB\">Cluster Architectures<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web Application Tiers * Web tier: provides static web content, e.g. HTML pages. * Presentation tier: provides dynamic web content, e.g. Servlets and JSPs. * Object tier: provides Java objects, e.g. EJBs and RMI classes, and their associated business logic. &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=3339\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[104],"tags":[588,558,157,590],"class_list":["post-3339","post","type-post","status-publish","format-standard","hentry","category-weblogic11g","tag-11g","tag-architecture","tag-cluster","tag-weblogic"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-RR","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3339"}],"version-history":[{"count":5,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3339\/revisions"}],"predecessor-version":[{"id":5063,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3339\/revisions\/5063"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}