Recession-proof your Company with SOA Bradley D. Brown Rolta TUSC, CTO Agenda • • • • Problem Set Agile, Agile, Agile SOA Applying Agile to SOA – Team – Technology • Actual Projects – People – Technology Bradley D. Brown - Background • TUSC (since 1988) – Chief Technology Officer, Founder – SOA Center of Excellence GM • Start-ups • University of Denver – Graduate Class – New Venture Creation • User Groups – – – – OOW, IOUG, ODTUG, LAOUG, RMOUG, etc. Oracle Fusion Middleware Director/ACE IOUC Fusion Council 5 books for Oracle Press, 100s of presentations The Problem Set The Problem Set • Today's Turbulent Economy • Ability to Rapidly Modify Service Offerings • SOA Can Reduce Development Efforts – Easier Integration – Achieves Agility • Historical SOA Big Bang is Bad • Agile SOA is the Key to Your Success – Rapid Results and ROI – Lower TCO – Weeks vs. Months Agile Provides QUICK Results • Short iterations allow your customer to see what they are asking for quickly • It does not imply a lack of design, rather it’s more like stacking the deck • Agile provides a constant backlog of “ready to develop” tasks • Agile will highlight your weaknesses (processes, people, planning, etc.) • Team wants to be together more • You’ll see results every day! “Two Pillars” of Scrum Team empowerment : • • • Once teams are given work to do, they are responsible for figuring out how to do it. The team does the best it can during each increment. While a team works, their only interaction with management is to tell management what is getting in their way and needs to be removed to improve their productivity. Adaptability : • • • Scrum uses "punctuated equilibrium". The team maintains an equilibrium during each increment, insulated from outside disturbance. Increments are punctuated at the end of every sprint so that the team and management can evaluate what should be done during the next increment; this decision is based on what the team has accomplished and what the environment dictates is the next most important thing to do. Once Scrum is underway, teams and management find it easy to focus. Every request is easily evaluated by, "What's that got to do with delivering the code?" What is Agile? – Welcome to Nascar • Individual Interactions – (over processes and tools) • Working Software – (over comprehensive documentation) • Customer Collaboration – (over contract negotiation) • Responding to Change – (over following a plan) Agile Operational Overview Sprinting… • Sample Sprint Agenda • • • • • • • • • • • • • • Opening, Welcome, Intros, Agenda Product Vision & Roadmap Development Status, Architecture, Previous Sprint Velocity In Previous Sprints Team – Availability and Capacity “Done” Review Definition Product Backlog: Review and Select Tasking Out – Estimates – Ownership Challenges – Dependencies – Risks Review: Capacity Required Review: Risks & Mitigations COMMIT! Parking Lot, Action Items Close What is SOA? – Telephone Anyone? • Standard way to work with other devices – – – – Standard way to plug in anywhere My phone works at your house A phone from overseas can work here with an adapter Standard way to address other systems (703-555-1212) • “Architecture” enriches experience with additional services – – – – Caller ID Voicemail Call Waiting Additional features can be added (and ignored) • Vendor Independent – Doesn’t matter what kind of phone I have – Doesn’t matter how old my phone is What is a Service? • Program (Procedure, Function, Method) or Query • Requires inputs • Provides outputs • Something already in existence • Written in a specific language • Runs on a specific platform What is a Web Service? • Open Standard for an API – Application Programmer Interface – Run a program on another server without knowing the OS, Hardware, Language, etc. • Uses SOAP, XML, WSDL as protocols/standards • Makes it very easy for you to securely expose data or business logic for others to use (and reuse) • SOA – Same Old Architecture – Reuse existing code, data, etc. What’s a Powerful / Flexible Service? • Do you have SOA MBOs? – Focus on quality, not quantity • Reuse – More reuse = More ROI – Reuse means people need to be able to find services too • Performance • Flexibility • Building an open API that provides dynamic services provides a powerful service architecture SOA Overview Composite Apps Business Processes Retrieve Data Verify Details Order Entry Order Review Approve Order Initiate Shipment Order Management Business Service Orchestration Customer Information Order Management Order Compensation Data Services Legacy Systems Customer Data Customer Interaction Customer Data CRM Order History ERP Order Policy Orders Shipment Logistics Agile SOA Team Team Composition • Project People – Scrum Master – Project Owner – Sponsor • Technical People – Architect/Designer • User Interface • Application • Data – Developers • User Interface • Application • DBA/Database Team Highlights • Project Owner – Block Scope Creep! – Maintain Vision! – Know when done done! Team Highlights • Data Architect/Developer – Integral part of the team! – Not part-time resource! – Most important resource! • Sponsor – Work closely with team! – Available for feedback daily! – Committed to project completion! Agile SOA Technology SOA Reference Architecture How does this fit into Agile? Hmmm… Good Question What to Remember… • You don’t have to do it all at once! – Start small! • Initial projects – few web services – Application server – Security – Think Agile… • Grow larger! – More Web services • • • • • • • • Application server Security Testing tools Activity monitoring and management Load Balancing/High Availability Life Cycle Management SOA metadata management Policy Management and Enforcement What else you have to Remember… • SOA is not ONLY about middleware! • Data is just as important… Maybe more! • Keys – Data Translation – Data Transformation – Data Aggregation Why is Data Important? Story 1 Story 2 Story 3 Consuming Technologies Services Data Sources Example: Business KPI Dashboard Background • CEO, CIO, VPs looking for real-time visibility into identified business KPIs – Current: Semi-Monthly reports run and compiled into Excel Spread Sheets and distributed via Email manually – New: Web application available 24/7 with current and historical data, user configurable, single source for important business information Technologies • Data Sources – 3 Oracle systems • EBS R12, 2 proprietary systems – Excel Spread Sheets – SalesForce.com • Application Layer – Oracle Application Server – Application Express – iPerspective Manual Web Service Creation • SDO – Service Data Object – CRUD for Tables/Views • Technical Service – Package – Limited Functionality – Doesn’t work for • Overloaded • In-out • Inline records • Choose an IDE – – – – JDeveloper Eclipse NetBeans Etc. • Write Your Services – Wizards – By Hand • Good “Step-by-Step” presentation on this topic – entire presentation alone iPerspective Create a Complex Service – Name Your Service – Type (or paste) Your SQL Statement, Test – Choose the Release(s) to include the object into • Deploy the Release • You’re Done! Architecture Initial Design Team Organization • Scrum Master • Technical Lead • Architects/Developers – Apex Developers – Web Services/iPerspective Experts – Part-time Data Architect • Sponsor Delivery Strategy • • • • Deliverable became entire pages Delivered an entire set of pages per iteration 1 application page per developer Data architect to deliver needed data per page each iteration • Technical lead to configure shared components and combine webservices for dashboard page Page Architecture • Data translation, transformation, and aggregation all left in the DB • Limited amount of data transferred via web services • Split application into pages and delivered specific pages in an Iteration Sample Page Iterations Start UI Design Translate to exact data needed for a page Engage Data Architect for Cache Tables and views Make changes necessary Finish Validate Presentation with Sponsor Develop ApEx pages using data delivered via Web Service Develop Web Services Important Points • Time Consuming Steps – UI Design – Web Services Design – Database Development • Reuse components where possible • Use dynamic information wherever possible • Leave as much data processing to the data sources Another Real World Example Real Estate Intelligence Business-to-Business • Typical customer interaction • Looks like their systems • It is there system • Calls Web Service to look up value The Results… • Results are returned and used accordingly • Fit into business flow however they wish Send a Text to HOUSE • c Complete Application via Services Drank My Own Champaign… • Write the logic once • Use it everywhere Power of WOA • Hosted elsewhere… • Google App Engine • Google Mashup • Yahoo Pipes The Problem Solved Keys to Success • Ability to Rapidly Modify Service Offerings • SOA Can Reduce Development Efforts – Easier Integration – Achieves Agility – Interchangeable (abstraction, loose coupling) • Agile SOA – Rapid Results and ROI – Lower TCO – Weeks vs. Months Summary • • • • Problem Set Agile, Agile, Agile SOA Applying Agile to SOA – Team – Technology • Actual Projects – People – Technology Questions? More Information Bradley D. Brown – brownb@tusc.com http://www.tuscsoftware.com http://bradleydbrown.blogspot.com Brad’s Papers and Presentations • Java-based Oracle Web Development • Java Server Pages • JavaMail • Java for the PL/SQL Developer • Web Cache – achieving 150 the performance • 9iAS Installation, Configuration, and Tuning • Wireless • • • • • • • • Practical Portal Practices Implementing JSP in Portal UltraSearch Search Engines Utl_smtp and Utl_http iFS JavaScript Top DBA scripts for Web Developers • Security Other TUSC Presentations and Papers TUSC On-Demand Presentations can be found at www.tusc.com/briefing • Tuning – Database – SQL – Applications • • • • Security Migrations Discoverer & BI Built-in Packages • • • • • • • • PL/SQL New Features Forms, Reports Designer Team Management Uncommon Leaders Workflow DBA topics Copyright Information • Neither Rolta TUSC nor the author guarantee this document to be error-free. Please provide comments/questions to bradley_d_brown@tusc.com. • Rolta TUSC © 2010. This document cannot be reproduced without expressed written consent from an officer of Rolta TUSC. • Thanks to Laura Sprowls and Chris Klein for many of the slides in here!