80 likes | 235 Views
The Layers Above. Next programming models for enterprise software. Dr. Vishal Sikka Chief Technology Officer SAP. The primary business we are in. ~$75bn. Business User Solutions SME Solutions Business Process Platform. ~$32bn. Industry Solutions SAP Business Suite.
E N D
The Layers Above Next programming models for enterprise software Dr. Vishal Sikka Chief Technology Officer SAP
The primary business we are in ~$75bn Business User Solutions SME Solutions Business Process Platform ~$32bn Industry Solutions SAP Business Suite Industry SolutionsCRM, SRM SCM, PLM #1 ERP 2010E 2005 30 Industries, 120 Countries, 44k Customers: VL, L, M, S, VS
Broad coverage means serving many different app characteristics Events Services • Frontend Characteristics • Highly Distributed, anywhere anytime usage • User-centric, Collaborative • Implicit, Unstructured • Exception Driven, Ad hoc, Dynamic Line of Business Servers HIGHLY AGILE AND INTELLIGENT FRONT ENDS Business Users eBilling eCommerce Office users Wireless Mobile End Points Devices/SensorsRFID Shop floor systems Warehouse systems HIGHLY SCALABLE RELIABLE BACK ENDS Enterprise CRM, SRM • Backend Characteristics • Structured, well-defined flows • Process-driven, Transactional • Reliable, Efficient, Scalable • Mature, slower rate of change • Centralized Core, ERP based Manufacturing Service/Call Center Enterprise Core ERP SCM, PLM Financials Sales, Distribution, Order Mgmt Master Data
The Web and Business Software • A new architecture for business software is once again emerging • SOA seemed like APIs revisited; SaaS covers many more aspects • Ubiquity of access and flattening • Pervasive Read & Write on the public web; only early signs in the private web • New deployment and economic dynamics • New Hardware dynamics • Multi-core, power, Network latency/throughput, Memory latency/throughput • Petascale data centers, power, highly optimized operations and distribution • But how does this impact the fundamental underlying issues? • Building for a wide range of business activities • Ability to change, extend and integrate software systems • Better automation and intelligence • Partitioning for optimal execution • Local ↔ Global access; Change ↔ Share • 1000 users on an ec2 blade vs. large multi-tenant databases • What are the governing dynamics of how we program next?
The Web’s influence on Programming Models The way we program is largely unchanged from the past • Applications still lag hardware by 7 years or so (Patterson) • Programming languages evolve routinely • Roughly a major language every 10 years (Kay) • Several minor ones in the interim • Programming models evolve a little faster • As domain-specific libraries, APIs, or language extensions • UI technologies evolve frequently • And Applications often outlive all this • Legacy and change management become islands of (expensive) expertise • Only early signs of nextgen models
The Current Situation: Layers and Islands • Many different languages/models, Many different run times • Disparate languages and models that are not designed to work together • Each language/model and run-time is a silo e.g., SQL, Flex, … • Each layer brings benefits of isolation/separation of concerns, but • Also often costs in performance • “Design Time” Inefficiency • Different tools and models for different parts of the application suite • Developers often serve as the glue between these languages and models • Much code and effort spent on translating between layers/models • E.g., read SQL into BO, build Business Process, construct UI from BO, write report • “Run-time” Lack of Optimization • Different containers to run different models and languages • SQL databases to execute SQL, Process integration servers for bpm, etc. • Each container optimized for specialized language/model; missing run-time interoperability • Missing cross-level optimization leads to landscape complexity How do we get over this false divide? i.e. design for both flexibility and optimization?
Desiderata for the next enterprise programming model • Design Time • As simple as possible; wide variety of developer types • Match highest level of abstraction for audience and each layer • A family of integrated (specialized) domain-specific languages and tooling conveniences • A powerful GLUE that binds these languages together • Run-Time • Specialized run-times that work in concert (based on GLUE) • Run in specialized containers or consolidated containers, as needed • As optimized as possible • Match lowest level of delivery available in the stack • Integration with Legacy • Ensure NGPM subsumes existing legacy models and languages • Build legacy programming models natively into the GLUE • Build legacy programming languages, e.g.Java, ABAP into the GLUE
So… Who will build this?