notes for oopsla panel app servers: one size fits all … not?

20
Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Upload: noah-bruce

Post on 29-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Notes for OOPSLA Panel

App Servers: One Size Fits All … Not?

Page 2: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

AbstractEnterprises today must recognize and accommodate a diversity of requirements in their systems.

These requirements are appear at many levels: from the choice of hardware platforms through the delivery of application-supporting enterprise services, such as identity management and content management. This diversity presents a rich opportunity for software vendors, but also presents significant challenges: how do we accommodate the small business, the medium-sized business and the global enterprise, in manufacturing, entertainment, financial services, retail and government (to name but a few)? How do we enable and facilitate enterprise schematization, a must-have for any effective integrated application delivery process?

 At the lowest level, the response is that one size does fit all. We place our bets on a programming

model and a supporting infrastructure that realizes that programming model at run-time. We argue that this model and infrastructure provide the most cohesive, productive, and performant choice in the marketplace. Unfortunately, when we begin to focus on addressing the business processes and capabilities of an enterprise, within a vertical domain, we discover that we don't even know how to measure fit. It's this understanding that we, as an industry, must strive to achieve. Our solutions need to feel tailor-made, but be sewn from consistent patterns at every level, from object lifecycle management and messaging to business frameworks and process definition.

 There's one occasion where one size must fit all, however: standards for interoperability. Every

vendor today recognizes that interoperability is the key to our successful co-existence. No system is greenfield, no environment is legacy-free, no enterprise runs on homogeneous infrastructure. To operate in today's IT climate, standards-based interoperation is a set-in-stone requirement in every domain.

Page 3: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Introduction

• My role – Architecture – Listening to the needs of Microsoft's enterprise customers – Focused on the architect, best practices, IT alignment – Pat Helland was supposed to participate in panel– Was at PDC – announcement of Longhorn, Whitehorse (part of

DSI, modeling, DSL for system definition) – more later

• Spin – Mostly going to talk about IT problems, rather than application

server features– And how complete programming environments, from tools to

run-times, solve these problems – Not to divert panel but rather to contextualize

Page 4: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Challenges

• For our customers 1. Managing complexity 2. Managing cost

• 70/30 50/50 (Accenture IT Value survey)• Development, deployment, management

3. Delivering new capabilities to grow business

• For us as vendors – Selling the value of integration as the key to our customer’s

problems– Selling the need to spend money to save money– More broadly, we have the problem of serving customers large

and small, in a breadth of industries

Page 5: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

The Naïve Solution

• The historical product vendor perspective (Microsoft infamous)

• At one level, we do argue that one size fits all: Windows plus .NET; unified programming model, toolset, run-time – So what is the Microsoft application server? Is it .NET? Is it

COM+? No - it's Windows - that's the platform; .NET is the programming model

• Services that you expect from an application server – Transactions– Security – Lifecycle management: pooling, activation

• So the term is ill-defined, particularly because it's not all-or-nothing on the Microsoft platform - you can use capabilities, or not

• Important: runs on the client

Page 6: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

But,

• J2EE containers and Windows/.NET are pretty much equivalent in terms of functions and features – We argue differentiation in terms of quality properties:

• Value of integrated stack • Better productivity• Most mature and integrated web services support • Cost/performance

– But not trying to pitch the platform • You can build great applications on Windows/.NET and

J2EE; you can build bad applications on Windows/.NET and J2EE – Almost every customer I work with has deployed both

• So it's clearly not the application server that determines whether or not an application delivers business value

Page 7: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

So …

• What is important is how the whole programming environment - from early lifecycle analysis through implementation, test, deployment and management - supports building effective systems – The "application platform" – Tools – Architecture/DSLs/frameworks/models

• Reuse is derived from consistency or "conceptual integrity" (Brooks); consistency is derived from architecture, frameworks

– These, in turn, derive from effective decomposition of capabilities

Page 8: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Punchline• So now the question becomes one of determining "fit" - knowing

when you've got the right "size" solution for the problem – Identification of appropriately-decomposed services, assembled in well-

defined ways, helps us categorize our sizes – Construction of systems with architecture, frameworks, models using

appropriate tools, is the key to sustainable development • DSI – focus on connecting services, mapping to logical data center

– Architecture evaluation is a mechanism to assess fit • Codification of best practices, specialization of horizontal

capabilities in vertical domains – Embodied in architecture, frameworks – Capabilities exposed as services

• We need to figure out what size means– Customers are desperate to understand this

Page 9: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Final Note

• There is one place where one size must fit all: standards for interoperability

• The evolution of web services has been proving a demonstration that we, as an industry, have achieved something fundamentally different from efforts of the past: we can integrate heterogeneous technologies into systems that deliver on collaborative business processes – We're enabling new value chains – But web services are about protocols - we need the guidance,

the best practices, the tools, the frameworks to allow them to deliver business value

• We also have a great deal of infrastructural work to do

Page 10: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Q1

• What are the features you consider important that are common amongst the various application servers, and what are the features that differentiate them?

– A great deal of commonality these days – Basically there is substantial feature alignment between J2EE

vendors and Microsoft with .NET – Differentiation is largely coming outside the run-time – These days, fast XML serialization has become a big deal as

a feature– Support for more flexible messaging topologies (i.e. a

message-based, rather than RPC-based model) for services– Manageability

Page 11: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Q2

• I work at a (small, medium, large ... pick one) company and we are considering using (J2EE, .NET, BEA, Websphere, ... pick one) on our application. What should we look for in making the final decision?

– Do architecture analysis – Assess TCO - training, development cost,

operations cost, maintenance cost

Page 12: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Q3

• What are the advantages to using an application server? What are some other ways of developing without one? – Some application types don't need complete

gamut of application server capabilities – With Windows, you mix-and-match; the OS is

the application server, including transaction support (COM+), queuing (MSMQ), pooling and so on  

Page 13: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Q4

• When is it necessary to use an application server? When is it better to avoid it?

– Resource management is the key thing: lifecycle control, pooling, etc. are things you don't want to build yourself

• Also don't want to build reliable messaging • Also don't want to build a DTC

– If you don't need these capabilities, you don't need an "application server"

– Applications using J2EE often just deploy servlets – no EJBs, no transactions

Page 14: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Q5

• How can I find out more about application servers on the market without having to buy each one and build something with it? – No substitute for actual practical experience,

but can build something bite-sized to get the point, as long as the something is aligned with the business

– Can almost always evaluate for free– Microsoft funds bake-offs and POCs

Page 15: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

.NET Single-OS

• Yes, no apologies– Again, this comes down to the definition of

platform – it’s not .NET (that’s the programming model); it’s Windows

• Microsoft delivers value across the technology stack, in an integrated way

• But not to the exclusion of interoperability, which is a key strategic direction today

Page 16: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Indigo

• Secure, reliable, transacted web services

• New programming model– Transparent messaging in-process, cross-

process and cross-host

• Just announced at PDC; part of Longhorn wave

Page 17: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Yukon

• In service-oriented architecture, multiple message request/response pairs participate in a single business transaction– Need correlation– Need transient (activity) data

• Manages idempotence

– Multiple traditional ACID transactions

• Yukon offers built-in support for this – Service Broker

Page 18: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Whitehorse

• Service-oriented modeling• Multiple viewpoints across lifecycle and from

business to IT– SDM is multi-DSL

• Service Definition Model connects design time to deployment time (logical data center)– Key to manageability – probably the most interesting

new “app server” capability to consider

• Framework population/code generation from SDM - roundtrip

Page 19: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Services - 1

• Not activated, stateful like objects• Not forward-deployed (no shared code)• Large-grained• Autonomous• Fundamental driver:

– Allow independent evolution of client and server

• Appropriate within application boundaries (platform, deployment, trust) and across

Page 20: Notes for OOPSLA Panel App Servers: One Size Fits All … Not?

Services - 2• Object Orientation

– Assume homogeneous platform and execution environment– Share types, not schemas– Assume cheap, transparent communication– Are linked: Object identity and lifetime maintained by infrastructure– Typically require deployment of both client and server

in sync– Are easy to talk about and become a natural path for customers to follow– Customers have 20+ years of experience and great intuition about what

“object oriented is”• Service Orientation

– Assume heterogeneous platform and execution environment– Share schemas, not types– Assume variable cost, explicit communication– Are autonomous: Security and failure isolation are a must– Ease “continuous deployment” of client and server separately– Builds on ideas from component software, distributed objects, and MOM– Dominant theme is to manage/reduce sharing between services

• Object Orientation– Assume homogeneous platform and execution environment– Share types, not schemas– Assume cheap, transparent communication– Are linked: Object identity and lifetime maintained by infrastructure– Typically require deployment of both client and server

in sync– Are easy to talk about and become a natural path for customers to follow– Customers have 20+ years of experience and great intuition about what

“object oriented is”• Service Orientation

– Assume heterogeneous platform and execution environment– Share schemas, not types– Assume variable cost, explicit communication– Are autonomous: Security and failure isolation are a must– Ease “continuous deployment” of client and server separately– Builds on ideas from component software, distributed objects, and MOM– Dominant theme is to manage/reduce sharing between services