Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Java, app servers and oracle application grid
1.
2. Java, Application Servers, and Application Grid: The Rock-Solid Foundation for Enterprise Software Roger Freixa EMEA FMW Principal Product Manager – Application Grid
10. Java Strategy Enhance and Extend reach of the Java Programming Model to emerging Application Development Paradigms Integrate and Simplify the Java Platform optimizing it for a variety of existing and new Deployment Architectures Invest in and revitalize the Java Developer Community with best of breed Java Technology
11. Java PlatformComplete. Open. Integrated. Mobile Desktops TV Cards Servers JavaFX Java EE Embedded APIs Java SE Java ME Java Card Java TV VMs Server JVM Client JVM Mobile JVMs CardJVM TV JVM Language Java Language 10
12. Java RuntimeJava SE Rapidly deliver Java SE 7 with many new features Modularization Developer productivity Multiple languages Higher performance Support for Multi-Core Processors HotSpot and JRockit are strategic JVMs Converge best features of HotSpot and JRockit Management and Real-time Monitoring Run natively on Hypervisors Optimize/Remove Permgen Thread Local, Server Class Garbage Collection NUMA Compiler Optimization for Multi-Cores Continued support for all leading OSs
13. Java Application ServerJava EE Evolve current Java EE RI to further address key initiatives Modularity with Open Standards New Lightweight Server Profiles UI and Rich Internet Applications Scripting and Dynamic Languages Optimized Web Services Stack Glassfish and WebLogic are strategic Application Servers Glassfish remains Java EE Reference Implementation WebLogic remains strategic Enterprise Application Server No change in support timelines or distribution model for Glassfish
35. Oracle Application GridProduct Strategy EfficiencyLowest operational costs SimplificationBest foundation for entire software stack Competitiveness Outperform with speed and flexibility
Flow:We have acquired SUN and thus the Java platformJava is strategically important to us – we will continue to invest in it. We’ll briefly describe our strategy here.Java is the foundation of our Application Server and Application Grid strategy - we’ll explain what these are and why they’re importantWe’ll discuss how to architecturally begin to adopt a more flexible, scalable computing platform (AppGrid) through consolidationWe’ll have a quick look to the future and Appgrid’s evolution within the context of Cloud Computing
This is our standard disclaimer--we will touch on some visionary things in this talk that should not be used for contractual purposes.
One of the ways that the IT industry is dealing with the need to support more complex demands but with greater simplicity is to be really focused in where they spend custom development efforts. IT managers, architects, and developers are being much more judicious in avoiding reinventing the wheel and using off-the-shelf technologies and components wherever possible. This reserves high-value custom development efforts for aspects of IT that truly differentiate the business.
First, just to put things in perspective, Java *is* the single most widely used development language in the world today, with over 9 million developers saying they spend at least some of their time developing in Java, according to a recent Evans Data study. That’s out of a world population of about 14 million developers.Oracle realises the importance of Java and has done for some time. Our entire FMW platform is built on Java and the Java platform in the foundation for all of our applications.
Enterprise Java has evolved in an amazing way since its emergence in 1998 with Enterprise Java Beans 1.0. The development of EJBs along with technologies such as JMS, Web services standards, JSF, and so on, along with many technologies not part of Java EE per se but complementary to it such as BPEL and SCA, has brought about the most comprehensive platform for enterprise software development ever.Oracle has been closely involved in the Java Community Process since the mid-1990s, leading many JSRs and leading execution of the JCP. Oracle’s major contribution to Java’s open source projects was TopLink (Object-relational mapping software acquired from WebGain in 2002).JDK downloads = ~7M per annum. We are currently working on JDK7 – to be released in 2010.840M Java Runtimes installed on desktops worldwide.
Oracle’ s strategy for Java is to:Enhance and extend the reach of the Java Programming ModelIntegrate and simplify the Java platformInvest in the Java Community Process and make it more participative.
So what is Java? I don’t expect you to be able to read all the individual items in this architecture diagram of Java SE, but let’s walk through the macrol-level pieces and calibrate a sense of what all is in here. [click] First is the Java language itself. [click] Complementing that you have basic tools such as the compiler that turns Java code into the byte codes executed by the Java Virtual Machine. [click] You have deployment tools such as those supporting WebStart and browser plugins. [click] you have UI libraries such as Swing, [click] base libraries such as math and I/O, and [click] then of course the JVM. [click] All together this is a platform for extremely productive development, highly tuned runtime, ongoing innovation, and supported by a community process.JavaME: 85% of phones worldwide run on JavaME. 100,000+ mobile applications built for JavaME platform.Evolution of mobile computing (iPhone, Blackberry) means we will invest significantly in Java ME and optimise its performance – make WORA a reality for new devices. Oracle is going to unify the APIs of SE and ME for the first time so that applications can be built more quickly and are more portable across the platform.Optimise performance of Java ME. Ensure portability across IPTV, BlueRay etc.JavaFX – ability to build rich, design-based applications had been lagging behind. Those wanting to develop a design-oriented site / apps and want to do it visually can now use JavaFX with drag and drop assembly functionality and cinematic experience.Oracle is going to eliminate the lines between Java, JavaScript and DHTML to make interoperability easier.Ensure portability across to JavaTV, mobile devices etc.Combine with ADF and ADF mobile.
Oracle’s strategy is to continue to invest and develop in Java. Java SE7 is the next platform release: Oracle will focus on modularity and performance. Jrockit and Hotspot are strategic JVMs that will be able to run natively on hypervisors.
JavaEE – a vibrant community. Java EE 6 released from JCP December 14th 2009.Bedrock of application server implementations. Oracle strategy:GlassFish remains reference implementation for Java EE and WLS is strategic Enterprise appserver.Evolve the Java EE 6 reference implementation to include modularity with profiles – simplify
So what is an application server? In short, it is an implementation of the Java EE standard we just reviewed. But if Java EE is an industry standard that anyone can implement, what is there to differentiate between different implementations of the spec? As long as they pass the compatibility test, aren’t all Java EE implementations the same? [click] First and foremost, different implementations that are all “compatible” will have very different performance and reliability characteristics, and these translate directly into your business’s competitiveness. Run your code on an app server that is slow or crashes a lot, and you lose customers. [click] Beyond what’s specified in the standard, application server vendors do different things in the way of clustering, integration, and management. These are directly related to scalability, flexibility, and how easy it is to manage not just a single application server instance, but you infrastructure in aggregate. These things are important to the business’s bottom line with their impact on efficiency.
Main point: the BEA integration is done, and both WebLogic and OC4J customers in the audience should be happyAs we mentioned earlier, WebLogic Server 11g represents a phenomenal 12-month development exercise in converging the world’s leading application server technologies. Let’s look at this in more detail.At a macro level, the converged container includes modules from both roots, such as WebLogic Server’s clustering and OC4J’s RAC integration and diagnostics capabilities. <click> On top of this application server is certified the rest of the Oracle middleware stack, and note that WebLogic Server 11g includes the OC4J support for Forms, Reports, Portal, etc. as well as SOA, BPM, WebCenter, Identity Management, etc. <click> Finally note that this the platform of choice for both custom apps and packaged apps; in particular it is the platform for the forthcoming Oracle Fusion Applications.
Important also to note is that both the Java EE standard and its implementation as an application server need to bridge two very different worlds: that of the developer, who is concerned with productivity and agility in areas such as installation, startup, and update, and that of the operations department, which is concerned with dependability, performance, scalability, ease of management, resource utilization, etc. What we’re building up to here is that the Java EE standard is the best standard for this in the world, and Oracle’s implementation, particularly in WebLogic Server, is the best implementation of that standard.here is WLS - strategic enterprise platform/designed for enterprise Java apps, FMW and Fusion Apps". Here is GlassFish - a great product - developer friendly, widely adopted, and we continue to invest in it both due the industry obligation - the Java EE RI - and because we want to keep the customers and developer community. If you want the higher end features of WLS or FMW/FMW Apps, WLS is your choice. If you want GF and like its capabilities and focus, its a great product
A term we hear a lot these days is shared services. The notion of resource sharing occurs at different levels of the stack, whether you’re talking at the macro level about enterprise departments sharing centralized IT services or at a deeper technical level were you’re talking about different applications sharing a physical server. The notion of resource pooling and sharing is at the core of the application grid approach.
So that brings us to “application grid”. What is it? You have a number of applications and services you need to support and a set of resources to run them. Traditionally there has been a highly siloed, dedicated stack approach to associated apps with resources. The application grid approach is about breaking down those silos sharing and pooling resources instead. By dynamically and automatically adjusting the allocation of resources across needs, you can get much higher utilization out of hardware because you’re not provisioning each application for its own worst case. You get higher reliability through the multiplicity of resources, and higher performance through parallelization.
From this you address <click> efficiency with lower operational costs, competitiveness by enabling your business to outperform competitors with responsiveness and innovation, and <click> simplification by consolidating to a consistent foundation that has many synergies with the rest of the stack—particularly the Oracle stack.
The first thing to do is to take advantage of technology you likely already have running in your data center. Nothing new to buy for this step—it’s a matter of using application servers and related technologies in ways you may not have already been doing. First,[click] Use application server clustering for scale-out[click] Consolidate to WebLogic Server. This means a few things – converting a potentially heterogeneous set of app server technologies to WebLogic Server, and then also consolidating workloads onto the right number of clusters and nodes per cluster for your applications.[click] Use scripting to automate scaling[click] You now have a foundation for application grid, with some level of course-grained dynamic resource adjustment
Once you’re taking fuller advantage of your application server clustering for course-grained dynamic resource adjustment, an additional step you may want to take is to improve scalability and performance. Oracle’s Coherence in-memory data grid is just the technology for this.[click] you can add Coherence in-memory data grid nodes to existing machines (such that each server is running both application server nodes and Coherence nodes)[click] you can also add machines dedicated to the in-memory data grid, creating a tiered caching architecture, depending on the needs of your applications.[click] third, you can improve the performance of your application grid even more by swapping in the JRockit Real Time JVM in the places in your grid that require very low latency with predictable performance.
The third major step in your consolidation effort toward creating an application grid is to automate more aspects of the grid operation.[click] a first step would be to add Oracle Enterprise Manager and use it as a centralized console and control element from which to manage your application servers, Coherence data grid nodes, and other application grid components.[click] second is to set up grid-wide SLA’s, policies, etc. within Enterprise Manager’s policy mechanism[click] taking this further is to have policies that automate grid behaviors, such as having a node added to a WebLogic Server cluster when the application running on the cluster nears a responsiveness threshold.
So let’s take a look at a few customer cases and see where they are on their respective paths to implementing an application grid architecture and practices.First is a large computer hardware manufacturer, who centralized their application server infrastructure on WebLogic Server. They have 200 different applications including PeopleSoft running on WebLogic Server clusters totaling 2000 nodes. Their consolidation effort cut admin resource by a factor of 10 and deployment costs by a factor of 4.Our second example is a top European Telecom, who went a step further than in the previous example in not just consolidating but actually creating a centralized platform with shared components, with an explicit mandate to create “middleware as a service”. The automated the provisioning of a standard WebLogic Server build environment and are well on their way to reducing administration to a ratio of hundreds of apps per staff member.Our third example is a top [European] global investment bank, who went even further with consolidation, shared service, and reusable components in a platform. They also federated security, bring value even beyond the 7:1 server consolidation and 20% reduction in operating costs to enable the security governance required in the banking industry to be uncompromised while allowing changes in days instead of months.
Let’s start with the big picture of cloud computing and how Oracle Fusion Middleware fits into it. First there is the distinction between public and private cloud. You’re probably more familiar with public cloud, whether it’s applications offered over the Web as a service such as Salesforce.com or infrastructure offered as a service such as Amazon’s EC2. Oracle Fusion Middleware, including WebLogic Server, is very well set up to be run on public cloud infrastructure. On the other hand is private cloud, the idea of setting up a cloud internal to your enterprise, gaining cloud’s deployment agility, resource efficiency, and elastic capacity while enabling that integration and control over quality of service and security that deter many enterprises from using public clouds. Again, Fusion Middleware, with application grid in particular, is an important enabler for setting up private clouds.
If we look in more detail at the scenario where Oracle Fusion Middleware is used as the basis for a platform-as-a-service private cloud [click] we see that application grid’s enablement of resource sharing with automated dynamic capacity adjustment and support for fast deployment that we’ve been talking about throughout this presentation are important enablers. Why would one want to set up a private cloud? [click] increased operational efficiency, deployment agility, and high quality of service. And why Oracle for these components? Highest performance, and probably more importantly, the most automated and dynamic capacity adjustment.
Moving up the stack, there’s an exciting new innovation in Oracle Fusion Middleware that allows you to get even more out of server virtualization: WebLogic Server Virtual Edition. WebLogic Server Virtual Edition is a variant of WebLogic Server designed to run directly on a virtualized server with no operating system. This is significant because, not only does it greatly improve the performance of Java apps running in virtualized environments, it makes the appliances themselves substantially smaller given the absence of the OS. WebLogic Server Virtual Edition appliances are thus faster and easer to create since there’s no OS to configure, faster to deploy since a much smaller appliance image is being transmitted to and started on the virtual server, and faster to live-migrate, since again there are fewer bits to transfer. These appliances are also easer to administer since there is no OS to patch and upgrade, and more secure since there is no OS presenting opportunities for breech.
Now, let’s take this whole concept of prepackaging components with exposed extension points to the next level. As nice as an appliance is, the reality of typical enterprise applications is that they are not self-contained, single-element entities but rather comprise multiple distributed elements that are connected together. [click] Each element might be an appliance, but the application overall consists of multiple appliances connected in a certain way. Here’s where we introduce the notion of an assembly, a sort of “meta appliance” that consists of multiple appliances plus information about how to connect them. [click] Oracle Assembly Builder is a tool that takes such a multi-tier, distributed application and packages it up into an assembly that can be reused in a way similar to the way appliances are used. [click] the assembly, like an appliance virtual image, is essentially a file that contains the images of the constituent appliances as well as metadata about how those appliances get configured, connected, and started up.