Why I hate (the hype about) SOA What is the SOA business case? SOA $$$$

Slides:



Advertisements
Similar presentations
Integrated Platform version 5.2
Advertisements

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Web Service Composition Prepared by Robert Ma February 5, 2007.
An Approach to Wrap Legacy Applications into Web Services Wesal Al Belushi, Youcef Baghdadi Department of Computer Science, Sultan Qaboos University, Sultanate.
Why I hate (the hype about) SOA What is the SOA business case? SOA $$$$
COM vs. CORBA.
Service Oriented Architecture Terry Woods Session 50.
Building a SOA roadmap for your enterprise Presented by Sanjeev Batta Architect, Cayzen Technologies.
Spring, Hibernate and Web Services 13 th September 2014.
Enterprise Integration Architecture IPMA Professional Development Seminar June 29, 2006 Scott Came Director, Enterprise Architecture Program Washington.
Technical Track Session Service-Oriented Architecture Terry Woods.
28 October 2008CIS 340 # 1 Topics (continuing) To develop the concepts guiding SOA To define SOA components.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
1 Introduction to SOA. 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description,
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
1 Software architecture adjustments for a changing business.
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
Stuart Sim Chief Architect Global Education & research Sun Client Solutions Blog:
6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
Troy Hutchison Service Oriented Architecture (SOA) Security.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
SOA Basics SSE USTC Qing Ding. Topics Quick introduction to SOA Composite applications Services and SOA.
Web Services Members Troy Tony Ellen Vincent. Web Services What is it Why is it useful What have been solved Demo Alternative technologies Question.
Enterprise Applications & Java/J2EE Technologies Dr. Douglas C. Schmidt Professor of EECS.
Page 1Prepared by Sapient for MITVersion 0.1 – August – September 2004 This document represents a snapshot of an evolving set of documents. For information.
Systems Integration & Consulting June Copyright ® 2009 Ayenda Agenda Introduction to Systems Integration System Integration Challenges and Opportunities.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
You’ve Built The Pieces, Now Integrate Your Enterprise! Mid-Atlantic Regional Conference January 17, 2003 Patty Gertz, Princeton University
® IBM Software Group © IBM Corporation IBM Information Server Service Oriented Architecture WebSphere Information Services Director (WISD)
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
CONNECT EVERYTHING. ACHIEVE ANYTHING. ™ Top Ten Enterprise Service Bus (ESB) Myths Gordon Van Huizen CTO, Sonic Software March 17, 2005.
SOA, BPM, BPEL, jBPM.
SOA-06: Get On the Bus with the OpenEdge ® Adapter for Sonic ESB ® David Cleary Principal Software Engineer, Progress.
UPortal Developers MIT August 2004 Persistence Strategy for uPortal 3 Mike DeSimone the r-smart group
Framework: ISA-95 WG We are here User cases Studies
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
SOA based Business Solutions Krishna Prasad Sunil Kumar K.V.
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Progress SOA Reference Model Explained Mike Ormerod Applied Architect 9/8/2008.
Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
AUTHORS: MIKE P. PAPAZOGLOU WILLEM-JAN VAN DEN HEUVEL PRESENTED BY: MARGARETA VAMOS Service oriented architectures: approaches, technologies and research.
SOA-02: Sonic SOA Products Overview Luis Maldonado Technical Product Manager Sonic Software.
Introduction to soarchitect. agenda SOA background and overview transaction recorder summary.
XML and Web Services (II/2546)
SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner Vice President of Technology.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
Kuali Rice Evolving the Infrastructure for Kuali Applications Brian McGough (Indiana University) Aaron Godert (Cornell University)
Service Oriented Architecture Enabling the Agile and Flexible Business of the 21 st Century.
A service Oriented Architecture & Web Service Technology.
SAP Integration with Oracle 11g Muhammad Raza Fatmi.
Service-oriented architecture 8 th July What is a Service? A service is a reusable component that can be used as a building block to form larger,
DEPTT. OF COMP. SC & APPLICATIONS
7. Service-oriented Architecture (SOA)
SOA-40: Getting Rejected on the Bus
Inventory of Distributed Computing Concepts and Web services
Enterprise Service Bus (ESB) (Chapter 9)
Inventory of Distributed Computing Concepts
ARCH-1: Application Architecture made Simple
Service Oriented Architecture (SOA)
Enterprise Integration
ARCH-14: Power Your Organisation with OpenEdge
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

Why I hate (the hype about) SOA What is the SOA business case? SOA $$$$

Prelude – what is wrong with this code? public Collection findByPattern(String namePattern) throws SQLException { Connection conn = DriverManager.getConnection(this.url, this.username, this.password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( "SELECT name FROM name_table WHERE name like '" + namePattern + "'"); Collection result = new ArrayList(); while (rs.next()) { result.add(rs.getString(1)); } conn.close(); return result; }

Summary! Use connection pooling! Avoid SQL injection! Don’t leak the bloody connections! Every time you leak a connection… God kills a kitten. Please: Think of the kitten!

Correct code! public Collection findByPattern(String namePattern) { String query = "SELECT name FROM name_table WHERE name like ?"; Object[] params = new Object[] { namePattern }; return jdbcTemplate.query(query, params, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getString(1); } }); }

Now: To the agenda of the day! What is SOA? Overdesign SOA promises –Integration –Orchestration –Reuse BBS architecture Lessons learned

Is SOA important? “Gartner projects that ‘by 2008, more than 75 percent of then-current application packages either will be natively SOA or will expose SOA interfaces through a wrapping layer of interfaces.’ ” [InformationWeek] The next (current) gold rush is in B2B (do I address this?)

What is SOA? SOA is ”A collection of Services that communicate with each other” [Cryer.com] ”[SOA] is an integrated software infrastructure and design approach, leveraging Web computing standards, for delivering business functions as shared and reusable services.” [sun] ”SOA is web services” [unattributed] ”blah, blah,blah, SOA is described, asynchronous, remote, loosly coupled, orchistrated, standard- based...” [someone fairly smart] Loose coupling

Fowler on SOA “I've heard people say the nice thing about SOA is that it separates data from process, that it combines data and process, that it uses web standards, that it's independent of web standards, that it's asynchronous, that it's synchronous, that the synchronicity doesn't matter.... “

Three doors marked SOA

Why SOA? Business strategy: –Focus on service delivery (agile?) Technical strategy: –Focus on integration: New applications quickly, reuse old applications –and orchestration: Modelling the business (”even a business person can do it!”) Market strategy –Everything that’s good -> everything we sell (this is the SOA trap) –Consulting services (”non-technical architects”) –”Gartner architecture”

The SOA stack Orchestration Access Layer Exposed Source system Described

The vendor stack (marchitecture) BPEL, BPMN JBI SOAP Source system WSDL A service in the SOA world seems to contain the usual layer upon layer of gunk. At the lowest level we have our meat, the bit that actually does Stuff. This can be EJB or whatnot. Next up we have BPEL (I dozed off briefly so I really don't remember how the two tie together), then above that we have that old dead horse, web services. - The BileBlog A service in the SOA world seems to contain the usual layer upon layer of gunk. At the lowest level we have our meat, the bit that actually does Stuff. This can be EJB or whatnot. Next up we have BPEL (I dozed off briefly so I really don't remember how the two tie together), then above that we have that old dead horse, web services. - The BileBlog

Claimed SOA(t) advantages Integration Orchestration Reuse I am not going to talk about –Synchronous/asynchronous –The horrors of XSLT –Enterprise service bus (on queue to rule them all…)

Integration: Web Service Alias “ ” Promised benefits: –Integration between various platforms Problems –Service qualities: Reliability, Security, Asynchrony, Transaction –Platform independence is a truth with modifications –Competing standards (few implementations) Dangers –Performance –Synchronous web services –Limited applicability ”The worst possible way of implementing SOA, is using web services” - Kaare Nilsen, SOA expert, ObjectWare

Orchestration: Example

Orchestration (and a little ESB) Promised benefits: –Visual modeling of workflow Problems: –Most applications not applicable for workflow! –Visual != Simple –Most architects can’t design asynchronously The two golden truths about diagramming: Communicative diagrams can’t be used to generate code. Diagrams generated from code are mostly useless. BPEL will fail for the same reasons as CASE ”The only problem with buses is that they never come along when you want them, and when they do 2 come at the same time.” Posted by Anonymous on the BileBlog

Reuse: Web services wrappers Design for reuse by the world is wasteful Reuse by remote interfaces is inferior Exposing services that were not designed for it is extremely risky: –Security (e.g. SQL injection) –Scalability (e.g. connection pooling) –Robustness (e.g. correct error handling) Your code has hundreds of these defects!

Designing with SOA… Hard to design correctly Many existing services are “in-line” DAOs Designing for asynchrony is hard (data-access, workflow) Building coarse-grained is hard

Final fallacy: Firewalls Why do we have firewalls? Are SOA applications secure? So… do we need “SOA firewalls”? <WEB SERVICES>

Conclusion SOA has a fairly substantial cost Don’t use it if you don’t need it! You probably don’t need it When do you need it? –If you are Amazon, ebay, or google –If your customers are paying you for it

BBS architecture Slides not to be published

BBS architecture Background: Replacing mainframe batch applications written in COBOL with Java Requirements –Robustness –Security –Scability (roughly quantified) –Operatability (quanitified) –Maintainability (quantified)

At a glance

Some nice tidbits Web layer –Co-located with business layer –Standardized dialogs and (MVC) controllers (based on RoR) Batch layer –Message oriented (scalable, robust, flexible) –Transparent Heavy focus on domain layer

Workflow design All exchanges RobustInOnly All exchanges deliver a Domain Object External integration is segregated in adapter classes –Primary files – everything we get in is from files Result: All service call is done through simple java object calls

Transparent claim check

Dependency injection Realizes SOA vision of loose coupling Interfaces are loosely coupled –More dynamic interfaces can be an anti-pattern Endpoints are specified by Spring configuration –Implies ”static” routing – but this is seldom a problem! –Dynamic routing is dumb in many instances

Dependency Injection

Aspect Oriented Services What can be realized as services What is missing from Web Services today –Transactions –Reliability –Security The field of AOP is largely unexplored –Billing…

Aspects Progress tracking Exception management Billing (experimental) Statistics Debugging Exception collation (future)

How do we get the SOA benefits? Integration –Standardized protocols (Bankens Standardiseringskontor, cirka 1990…) Orchestration –Remove temporal coupling –Simple, static workflow –Driven by single, simple events Reuse –Code and design reuse (patterns) –Primarily in-process (rocket science: method invocations…)

The SOA doors SOA is everything that is good SOA is everything we sell SOA is integration

Conclusion Your most pressing architectural risks are not solved by SOA SOA’s vision is not new The SOA stack may not be your best bet The vision can be archived by old technology with a new twist for real benefits Build simple, robust, and for today! SOA might not be wrong for you, but I recommend ignoring it until you know you need it.