services oriented infrastructure in a web2.0 world
DESCRIPTION
Tom Maguire discusses applying SOA Web 2.0 technologies, and open standards to the problems faced by IT in an ever changing world. This session was recorded at EMC World 2007 in Orlando FloridaTRANSCRIPT
1© 2007 EMC Corporation. All rights reserved.
Services Oriented Infrastructure in a Web2.0 World
Tom Maguire
EMC Corporation
2© 2007 EMC Corporation. All rights reserved.
Abstract
The confluence of several mature architectural paradigms with new user-centric paradigms will drive the next generation of IT.
Next generation IT will be based on the combination of model-driven architecture and service-oriented architecture applied to applications, information delivery, and IT resources alike.
The agility gained in IT infrastructure coupled with highly configurable, lightweight, 'last mile' visualization technologies will dramatically increase the relevance and reactivity of IT to the business.
3© 2007 EMC Corporation. All rights reserved.
What You Should Gain
� Attendees will leave with an understanding of the benefits of SOA, models, and Web 2.0 technologies and standards with regard to IT infrastructure.
� Attendees will leave with a vision of how they can utilize SOA, models, and Web 2.0 technologies.
4© 2007 EMC Corporation. All rights reserved.
Agenda
� Service Oriented Architecture
� Event Driven Architecture
� Web 2.0
� Potential IT Management Implications
� Conclusions
5© 2007 EMC Corporation. All rights reserved.
“Form ever follows function”‡
‡ Louis Henri Sullivan, Architect (September 3, 1856-April 14, 1924)
Not the other way around…..
6© 2007 EMC Corporation. All rights reserved.
Service Oriented Architecture - SOA
SOA is an architectural style whose goal is to achieve loose couplingamong interacting components for the purposes of interoperability,
composition, and orchestration.
By loose coupling we mean:The ability to add, modify, and delete components from the system with
minimal impact on other components.SOA is not � just about Web Services.� a rehash of J2EE, CORBA, DCE.� just another transport.SOA is about HOW
– How to build composite distributed systems
7© 2007 EMC Corporation. All rights reserved.
Lest We ForgetThe 8 fallacies when building distributed systems:
1. The network is reliable.
2. Latency is zero.
3. Bandwidth is infinite.
4. The network is secure.
5. Topology doesn’t change.
6. There is one administrator.
7. Transport cost is zero.
8. The network is homogenous.
by Peter Deutsch, Sun Fellow
Composite distributed systems built with SOA can fall into these traps but there are mechanisms in SOA that help to avoid some of these pitfalls.
8© 2007 EMC Corporation. All rights reserved.
SOA: Core Principles
� Loose coupling– Late binding– Interface to implementation (as well)– Interface fidelity
§ The more precise the interface, the tighter the coupling
� Described interfaces– Decouple components– Separation of concerns
� Implementation agnostic– Platform independent– Hidden implementation
� Message oriented– Well-defined messages– Coarse grained– Asynchrony
� Composition– Behavior is the sum of all behaviors in the system
� Internet scale
Differentprotocol bindings
Differentprotocol bindings
MediationMediation
Connectors/adaptersConnectors/adapters
Native resourcesNative resources
Common interfaceCommon interface
9© 2007 EMC Corporation. All rights reserved.
So what is it really all about?
It is about the messages defined in the interface.
In SOA there are three distinct data models in every interaction
1. The consumer-side implementation data model 2. The provider-side implementation data model 3. The message data model
The only data model of consequence in an SOA is the message data model; this is the agreed upon (contract) ‘data model’ for the consumer and the provider.
All of the implementation data models are hidden.
10© 2007 EMC Corporation. All rights reserved.
SOA: Composition vs. Coding
• public String getEmployeeName( long employeeID ) throws javax.ejb.CreateException, java.rmi.RemoteException
• { Connection conn = null; PreparedStatement ps = null;
• try
• { conn = this.getConnection();
• ps = conn.prepareStatement("select name from employees_files where idnumber = ?"); ps.setLong(1, employeeID);
• ResultSet rs = ps.executeQuery(); if (rs.next()) { return rs.getString(1);
• } return "Unknown"; }
• catch (SQLException sqe) { return sqe.getMessage(); } finally { if (ps != null) { try { ps.close(); }
ApplicationComposition
§ Metadata-driven configuration, composition, and business rules§ For application specialists (requirements experts) not developers§ Apps composed from existing services built by developers
vsvs
11© 2007 EMC Corporation. All rights reserved.
� Messaging– Routing Addressing– Multiple Message
Sessions– Events &
Notification– Reliable Messaging– Message Packaging
� Transactions– Asynchronous
Services– Transaction– Orchestration
� Security– Security Policy– Secure Conversation– Trusted Message– Federated Identity
� Service State– Resource Transfer– Management
� Metadata– Policy– Publication &
Discovery– Base Service &
Message Description– Metadata Exchange
XML XML XMLXML
MessagingMessaging
Sec
urity
Sec
urity
Ser
vice
Sta
teS
ervi
ce S
tate
Tra
nsac
tions
Tra
nsac
tions
Met
adat
a
Web Services – An embodiment
12© 2007 EMC Corporation. All rights reserved.
Web Services Can be SOAP or REST
� SOAP – Simple Object Access Protocol – Just SOAP, not Simple and not about Objects– Provides an extensible format and processing model
§ Allows components to be decoupled from other components (e.g., infrastructure components)
– Standards – Lots of them and still evolving– Commercial-grade tools, big vendor support
� REST – Representational State Transfer– HTTP, Uniform Resource Identifiers (URI), and XML– Simple use of GET, PUT, POST, and DELETE– Open tools, some resistance in commercial space
13© 2007 EMC Corporation. All rights reserved.
Event Driven Architecture - EDA
EDA is an architectural style whose goal is to achieve loose couplingamong interacting components through the production, detection,
consumption, and reaction to events.
By loose coupling we mean:
The ability to add, modify, and delete components from the system with minimal impact on other components.
EDA is
� an asynchronous publish-and-subscribe model.
� great for a federated or autonomous processing environment.
� a declarative model; configuration not code.
EDA is about EVENTS as Messages
14© 2007 EMC Corporation. All rights reserved.
SOA and EDA Synergies
� SOA is about – Loose coupling at the interface level.– Contractual agreement on the messages.– Decoupling implementation from interface.
� EDA is about – Loose coupling at the messaging level through configured publisher
and subscriber connections via topics.– Connecting messages (data models) together.
� EDA complements SOA by providing a rich asynchronous messaging capability.
– Publish-subscribe interaction model is the inverse of request-reply.
� Both architectures focus on messages (data models) and loose coupling.
– The formalization of the message data model creates opportunities.
15© 2007 EMC Corporation. All rights reserved.
What does this describe?
16© 2007 EMC Corporation. All rights reserved.
Architecture of Participation‡– Web 2.0
� Systems that are designed explicitly for user contribution� The current technology
– AJAX – Asynchronous JavaScript and XML§ Also called Rich Internet Applications (RIA)
– RSS/Atom – published changes to information§ Really Simple Syndication § Collectively called ‘feeds’
– Wikis – freeform collaborative authoring§ User- or machine-contributed content § With history and syndication
– Blogs – user-generated content§ With Trackbacks, permalinks, syndication
– Social tagging – public bookmarks– Presence – realtime collaboration
‡ Tim O’Reilly, Warburg-Pincus’ annual technology conference, May, 2003
17© 2007 EMC Corporation. All rights reserved.
Characteristics of Web 2.0
� Unstructured� Self-managed� Folksnomies� Freeform collaboration� User-defined metadata� In-system authoring
18© 2007 EMC Corporation. All rights reserved.
Wikis
� Software that allows users to freely create and edit content using any browser
– A collaborative website– “Open editing” but easy to correct mistakes– Recent changes can be monitored actively or passively
� At last count there were at least 80 implementations of Wiki
� Provides communities and categorization
� Freeform data model with tagging
The simplest online database that could possibly work.‡
‡ Ward Cunningham, Inventor of Wiki
19© 2007 EMC Corporation. All rights reserved.
Blogs
� Software that allows individuals to freely create and edit content using any browser
– An “open mic”
� Trackbacks, blogrolls, and aggregators create an understanding of experts
� Freeform data model with tagging
� Tagging provides the context for understanding area of expertise
User-generated content, in a journal style
20© 2007 EMC Corporation. All rights reserved.
AJAX
� AJAX utilizes– Standards-based presentation (XHTML & CSS)– Dynamic display manipulation using DOM (Document Object Model)– Data model interchange and manipulation using XML & XSLT– Asynchronous data retrieval using XMLHttpRequest– JavaScript to glue it all together
� To create RIA (Rich Internet Applications)– Web pages that feel more responsive– That only exchange small amounts of data behind the scenes– That do not have to be reloaded– Which improves interactivity, speed, and (hopefully) usability
Asynchronous JavaScript and XML. Not a technology, a technique for creating highly interactive web pages utilizing a
number of technologies.
21© 2007 EMC Corporation. All rights reserved.
AJAX – The “Global SOA”?
� AJAX is the natural service consumer
� AJAX allows users to interact dynamically with SOA-type services and their data models:
– SOAP– REST– RSS– ATOM– XML– SQL
22© 2007 EMC Corporation. All rights reserved.
The Match
User Interface
DataRich Internet Applications
SOA
?
?
23© 2007 EMC Corporation. All rights reserved.
Mashups
� This is really about content repurposing and reuse
� Both SOA and Mashups are compositional models– SOA: think corporate, consultants, big budget…– Mashups: just the opposite
� But that is changing….
The combination of content from more than one source into an integrated experience
Information and presentation are being separated in ways that allow for novel forms of reuse ‡
‡ Sho Kuwamoto, Adobe, Engineering, http://weblogs.macromedia.com/sho/archives/2005/08/web_20_rias_aja.cfm
24© 2007 EMC Corporation. All rights reserved.
Impact to IT Management
25© 2007 EMC Corporation. All rights reserved.
What if….
� you had access to all of the certified configuration information and could easily associate that with your infrastructure?� you could tap into a community that maintained content on
events and alerts that they have seen in their infrastructures?� you had access to a huge community of experts on a wide
range of infrastructure topics?� health, faults, and alerts were delivered to you anywhere
you would like with RSS?� a chronological log of information of all changes in the
infrastructure was available anywhere?� patches and software updates were delivered to you
asynchronously as they became available?� the interface to resources mimicked a Wiki-style interaction?
26© 2007 EMC Corporation. All rights reserved.
Business Process
Service Level Mgmt
Service Invocation
Functional Components
Resource Managers
Resources
Monolithic Products
Manual Processes and Workflows
Manual Processes and Workflows
Manual Processes and Workflows
NetWorker Replicat’nManager
DiskXtender
EmailXtender
27© 2007 EMC Corporation. All rights reserved.
Manual Processes and Workflows
Manual Processes and Workflows
Manual Processes and Workflows
Decomposed into Service Oriented Infrastructure
Business Process
Service Level Mgmt
Service Invocation
Functional Components
Resource Managers
Resources
Backup Replication Archiving DataMovement
Security Performance Availability Compliance
Web Services
SLOs / SLAs
Content Mgmt Bus. Intelligence Collaboration Business Apps
28© 2007 EMC Corporation. All rights reserved.
Conclusions & Recommendations
Ü Embark on the path to Service Orientation² Create well-defined interfaces and message models ² Use Web 2.0 technologies to “mashup” enterprise data models with Internet data
models
² Avoid tight coupling to implementation, interaction model, and data models
Ü Encourage the use of new collaboration tools² Establish communities for disciplines of interest
² Encourage internal experts to share knowledge through Wikis and blogs
² Harvest those data models and experts through mashups and realtime collaboration
Ü Watch out for accidental architectures² Command-and-control models (request-reply, point-to-point messaging)
² Fine-grained interactions
² Data model linkages
30© 2007 EMC Corporation. All rights reserved.
Backup slides
31© 2007 EMC Corporation. All rights reserved.
On Information Model and Data ModelsFrom RFC3444[i]:
The main purpose of an IM is to model managed objects at a conceptual level, independent of any specific implementations or protocols used to transport the data. The degree of specificity (or detail) of the abstractions defined in the IM depends on the modeling needs of its designers. In order to make the overall design as clear as possible, an IM should hide all protocol and implementation details. Another important characteristic of an IM is that it defines relationships between managed objects.
DMs, conversely, are defined at a lower level of abstraction and include many details. They are intended for implementers and include protocol-specific constructs.
Stated another way:
The IM includes abstract entities and their relationships to one another as well as operations that can be driven on those entities.
The DM deals with the implementation details or protocol details, of the IM. For example, implementation object models and protocol/message formats.
[i] “On the Difference Between Information Models and Data Models”, http://www.ietf.org/rfc/rfc3444.txt