This presentation discusses a tricky SOA question that few address - what should a SOA service do? What level of business work or process steps or granularity should a SOA service contain? Or, in laymans terms, what is a service (what should a service do or be?)
3. So, What’s a Service? Defining "services" is a bit like defining “curses" -- it's hard to explain, but you know it when you hear it. Lorraine Lawson IT Business Edge Integration Blog
4. So, What’s a Service? #2 When to promote a service to a Business Service is very hard to tell and it depends on the company’s specific business.Aristo Togliatti Symbian Developers Journal SOA & WOA
5. Events Actions Events Actions A Service is… Actions and Events associated with an Entity or Process Function – I.T. ‘code’ implementing an action or event. Entity Process
6. Some Service Goals Reusable The next time the business needs the same functionality, it’s already there and available for use. Single Instance A business process has corresponding I.T. “code” that only has to be maintained and changed in one place.
7. Different Kinds of Services An I.T. service is a unit of code providing an open interface that is abstracted from its implementation. Process Services - Encapsulation of business flow and application composition. BPM workflows. Business Logic Services - Encapsulation of functions. Data Services – Interaction with Entities, management of data access and persistence. Infrastructure Services - Common utility functions such as monitoring, logging, and security.
8. Data Services Entity A Service that encapsulates an Entity. The logical view of the entity… Database fields. Simple Calculated fields like age. Decoding (city code plus city name). Simple actions upon the entity… Insert, Update, Delete Query (Summary, Detailed)
9. “Simple Customer Interaction” Entity/Data Service An Entity – A Data Service - Create - Update - Delete Data Functions Customer Service Interface - Everything - Basic - Age Query Functions Business Actions - Status Change
12. Business Logic Services Process A ‘simple process’ that calculates or transforms information and produces an output. Usually a single block of code. A function. An algorithm.
13. “Calculate Pension Amount”Service A Business Logic Service – Example #1 Regular CalculatePension Service Interface Member of Parliament Government Employee
14. “Calculate Salary” Service A Business Logic Service – Example #2 (internal function) Basic Salary CalculateSalary (internal function) Salary Tax Regular Service Interface (internal function) Health Tax Bonus (internal function) Add Benefits Determine Vacation Check Sick Days
15. “Process Services” Process A BPM workflow. A set of tasks that transforms information and produces an output. Some activities may be conditional, or alternatives, or run in parallel, it is seldom a simple chain.
16. “Determine Disability Eligibility” Service A Process Service Workflow – Doctor Review Determine Eligibility Service Interface Citizen Workflow – Medical Committee
17. Infrastructure Services I.T. Process Services that provide I.T. functionality, such as logging, monitoring, security, printing, document processing, scanning, etc. Often vendor provided tools or components. “Central Logging” Service Security Errors Logging Service Interface Application Errors Service Errors
18. Composite Services Services may relyupon other services. Services may operateat different levels ofgranularity (detail).
19. BPM Workflows Use Servicesand Are Services BPM Workflows can use services to activate and fulfill process steps. BPM Workflows can be encapsulated by services and exposed as services. Workflows can use other workflows as process steps. Services can activate workflows or use workflows as part of a composite service.
20. Methodology: Services and Analysis Determine High Level Entities Determine High Level Actions and mid-level actions against Entities Determine High and Mid Level Business Processes Consider whether you can compose workflows and processes with the resulting services.
21. Methodology: How Much To Expose? Completely expose the Entity! Why? More exposed, more chance of reuse. Less exposed, need for changes later= bad. Changes cost a lot of money… (project, management, testing, deployment, etc.) Hardware to handle overhead is cheap (compared to the cost of programmers and change projects). Processing time is not significant compared to the service overhead. Arguments why not…overhead (network, disk, CPU – now cheap), security (let the security layer handle it), extra work (one day now, many days later). Example, Customer Entity includes Address, City Code plus City Name, Date of Birth plus Age, and all customer details available.
22. Methodology: How Much Functionality? Expose the Process and it’s first level of detail. Let calling systems manipulate the process at the level of capability the code allows manipulation. Let the process act as a black-box engine, all switches and controls exposed for maximum flexibility. Handle complexity with default or standard settings with overrides. Acting as a transaction engine means the service only needs to be changed if the business process changes. Why? Someone always needs “a little more” of what the process does exposed up until the full process options are exposed. And change costs significant money (time / effort).