460 likes | 583 Views
SOA Tailoring. jakob@rojel.dk. What gives you the right to talk. Agenda. The SOA scene ESB / MS Platform Agile SOA Product SOA. Agenda. The SOA scene ESB / MS Platform Agile SOA Product SOA. The SOA Scene. Most people are doing SOA Some people knows what it really is about
E N D
SOA Tailoring jakob@rojel.dk
Agenda • The SOA scene • ESB / MS Platform • Agile SOA • Product SOA
Agenda • The SOA scene • ESB / MS Platform • Agile SOA • Product SOA
The SOA Scene • Most people are doing SOA • Some people knows what it really is about • Few people really knows why they are doing SOA • The scope and definition of SOA keeps expanding • SOA actually now delivers in some areas
The EA Mafia • Focus on Enterprise Architecture • No real SOA without an Enterprise Service Bus • Extra cost justified by reuse • Business agility comes later • Sounds a little like mainframe and waterfall development method Read this
Remeber the SOA promise • Business agility • Reusable services in the cloud • The good news is that this is delivered outside the Enterprise • Mashup • Google, Facebook, Flickr, Amazon, eBay, Microsoft
Agenda • The SOA scene • ESB / MS Platform • Agile SOA • Product SOA
ESB and the Microsoft stack • There has been a lot of arguing whether Microsoft has an Enterprise Service Bus • It is possible to develop SOA solutions without an ESB ? • Will a shrink-wrapped ESB product help your organization ? • Is ESB just old hat ?
Defining ESB • Defining ‘ESB’ • Many variations, products and technologies • Commonality and convergence • Distributed, ubiquitous ‘fabric’ for message exchange and integration • Central administration and deployment • Standards-based and secure messaging • Centralized logging • Lightweight containers • Message exchange patterns & routing • Adaptation and mediation • Persistence and recoverability • Orchestration and choreography
The Microsoft SOA platform today • BizTalk Server 2006 R2 • Message brokerage (pub/sub, message stream processing) • Integration toolset (adapters, transformation, EDI support, etc.) • Orchestration • Business activity monitoring • Business rules, Single Sign-on, B2B support, development tooling etc. • Windows Communication Foundation (WCF) • Service model – loosely-coupled composition • Asynchronous messaging primitives • MEP (message exchange patterns) and extensible behavioural support • Channel architecture - transports and encodings • Windows Workflow Foundation (WF) • Activity model – tightly-coupled composition • Workflow models – sequential, state transition • Base activity library • Extensible architecture • Rules
Who are you kidding? • “Service Buses? Microsoft doesn’t get it!” • …but Microsoft says: • “The Service Bus is a set of design patterns” • “The Service Bus is about the platform, not the product” • “ESB is a subset of the service bus approach. Other subsets exist” • “BizTalk Server is a mere hub & spoke message broker” • BizTalk Server is pre-ESB, but firmly rooted in the same concepts • “WCF is interesting, but not ESB” • That’s the point! It’s a foundation for building service buses. • ‘Oslo’ will build on WCF • extending the service bus concept across applications, enterprises and ‘cloud’ computing
BizTalk Server Service Bus • Robust, recoverable message exchange . • Message Exchange Patterns (MEPs) • 1-way, 2 way, reliable, ordered, etc • No first-class support for duplex, but possible through custom adapters • Powerful pub/sub mechanism • Process Automation • Orchestration engine • Distribution and Scalability • Hosting model across multiple servers (Enterprise edition only) • Load-sharing • Single-point administration (Enterprise edition only) • Central ‘resource’ repository to aid deployment • Adapter framework • OOB adapters, third-party adapters and custom adapters
BizTalk Server Service Bus • Centralised model • ‘Heavyweight’ model • All messages persisted to Message Box • No lightweight, non-persisted, non-recoverable model • Low latency and real-time challenges • Supports built-in service types only • Orchestrations, Receive and Send ports • Must use adaptation for other services • Leads to over-use of orchestration • No built-in support for common ESB design patterns • Addressed via the ESB Guidance Toolkit
WCF Service Bus • Part of .NET Framework • Freely distributable – no licensing costs • Provides lightweight container model • Service and channel model • Hosting model • Wide range of MEPs, including duplex • Extensive support for SOAP and WS-* • New support for Web 2.0 and REST • WCF LoB Adapter Framework • Platform-level adapters • Exposed as WCF bindings
WCF Service Bus • Foundational only • Administration, management and deployment • Does not provide OOB enterprise-level tooling • No pre-built support for pub/sub • May be addressed in ‘Oslo’NB. early previews of ISB contain pub/sub model • Can be implemented today using custom code • No pre-built persistence features • May be addressed in ‘Oslo’ • No pre-built support for many common ESB design patterns • May be addressed in ‘Oslo’ • Some support today via ESB Guidance Toolkit • Limited support for orchestration and choreography • Can use WF with WCF
ESB Guidance Toolkit • Patterns and Practices • Guidance & best practice • Documented design patterns • Production-ready code (open source) • Targets BizTalk Server R2 and WCF • Not ‘Oslo’! • Use as a ‘starter’ pack • Extend or create components • Adapt code • Add to functionality
ESB patterns examples Point to point Request response resolution
General ESB proswikipedia • Faster and cheaper accommodation of existing systems. • Increased flexibility; easier to change as requirements change. • Standards-based. • Scales from point solutions to enterprise-wide deployment (distributed bus). • Predefined ready-for-use service types. • More configuration rather than integration coding. • No central rules engine, no central broker. • Incremental changes can be applied with zero down-time; enterprise becomes "refactorable
General ESB conswikipedia • Enterprise Message Model is usually required, resulting in additional management overhead. May not be a simple task to achieve many disparate systems collaborating on message standards. • Requires ongoing management of message versions to ensure the intended benefit of loose coupling. Incorrect, insufficient, or incomplete management of message versions can result in tight coupling instead of the intended loose coupling. • It normally requires more hardware than simple point to point messaging. • New skills needed to configure, manage, and operate an ESB. • Extra overhead and increased latency caused by messages traversing the extra ESB layer, especially as compared to point to point communications. • Some critics remark that ESB require a significant effort to implement, but produces no value unless SOA services are subsequently created for the ESB.[
ESB Recommendations • Very few will benefit from implementing a ESB product • Understand the ESB concepts and patterns • Use a pragmatic mix of WCF, WF and Biztalk in that priority • Keep it simple • If it is Endpoint resolution, transformation and logging your are looking for ESB is way over engineered • Prepare for Internet Service Bus / Federated Service Bus
Agenda • The SOA scene • ESB / MS Platform • Agile SOA • Product SOA
”Net generation” trends • Services outside the enterprise • Lot faster time to marked … always in beta • Spoiled employees does not follow corporate policy or long term benefits • Provide them with the tools they need or they will go elsewhere • Architecture decisions needs to accommodate soft values
But this stuff is just for fun isn’t it? • What relevance does this have outside of staff morale, corporate communications, professional networking, knowledge sharing, reducing time wasted in meetings and retention of intellectual property?
Agile development is king • Scrum has been adopted as a very successful development method • Empowered teams • 2-4 weeks iterations • Feature and test driven development • Agile does not believe in reuse economic • Dynamic languages looks like the next big wave • Ruby (on Rails) • Phyton • Groovy
Agile meets SOA • Traditional contract first web services are expensive • To build • To update • It helps if using a framework like WS SW Factory • Applications and services are easily intertwined but need to be kept aside
Not all services are alike • Be careful with service categorization • External WS • Cast in stone WS (e.g. Host integration server to Mainframe) • Application private WS • Lookup WS (e.g. REST type) • Core Web Services • Different internal architecture, development approach and governance for the various service types
Keep focus on the Service Model • Even agile needs to respect adding to the Service Model • Using the right framework for the Service Model it is a doable task
Don’t let WS slow you down • Late introduction of WS • Modern tools and layered architecture makes it trivial to add WS layer later • Get to WCF
Web Architectures requires WS • The Web 2.0 web applications heavily relies on WS • AJAX • Silverlight • Adobe XYZ • REST and JSON and similar technologies are predominant • Mashup and REST is a nice fit
Productivity is still king • Lot of productivity coming out of Redmond • ADO.Net data services • Dynamic Data • WCF • Software Factories
Staying in control • When working agile in iteration remember to have somebody responsible for the longer perspective • Could even be an Enterprise Architect • In the end of the iteration feed information back into the Enterprise • Update service models • Domain categorizations • Promote services
Agile wrapup • Agile might not be the best longterm strategy but it is vary hard to avoid • The SOA architecture needs to be prepared for changes • The technology catch-up for developers and architects is huge so start small
Agenda • The SOA scene • ESB / MS Platform • Agile SOA • Product SOA
SOA Economy • In-house invented SOA components are expensive and of questionable value. • Reuse as funding to SOA overhead is questionable • Think twice before developing SOA components for non core business, focus on key differentiators • If at all possible by SOA enabled products for non core business
SOA Enabled Product • A Product designed for the SOA world • A product build og loosly coupled components • A product where components can be externalized • A product where business logic and user interface is separated by a service layer
Example SOA enabled productOBA Blueprint Org Workers Citizens / Customers Internet Portal (MOSS) InfoPath 2007 Browser Forms MOSS Intranet Portal Outlook with 360 plugin Presentation InfoPath Forms Libraries 360 Web parts Productivity WCF WF BDC LOB Integration 360 BL Web Service Application Services 360 Process Manager Forms Services Import mail service 360 Security and logging Data External Services Active Directory 360 Backend Server LOB
ExampleExternalize the contact model In this show case the contact model of a Enterprise Content Management system was replace with the customer model of Microsoft CRM MS CRM SI 360
SOA Products • Still in its infancy • Might be delivered as installable products • Might be cloud services • Requires a new mindset which provides space for smaller vendors
Summary • Use ESB with care, only for very stable stuff • Consider buying services • Use your Enterprise Architect to maintain a flexible Service Model • Technology and business models are changing rapidly to travel light
Comparing ESB and Cameras • But in the end it all comes down to the photographer and the motif