Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
™ Service-oriented Architecture Principles, Practice, and IBM i Rich Diedrich [email protected] Lab Services Power Systems Delivery Practice – IBM i © 2014 IBM Corporation What do I mean by a Service-oriented Architecture? Software architecture consisting of services Principles, not specific technologies Services – Provide a business function – Reusable – Encapsulated Additional service properties – Loosely coupled – Stateless – May reside on different platforms 2 © 2014 IBM Corporation A service performs a business function and has several important properties Performs business function – Get information – Perform action Properties – – – – – 3 Encapsulated Reusable Stateless Event driven Loosely coupled © 2014 IBM Corporation An encapsulated interface hides the implementation Documented interface – Web Services Description Language (WSDL) – Can be done in other ways Internal implementation not exposed – Changes in implementation do not affect consumers – Enables platform changes 4 © 2014 IBM Corporation Services should be designed to be reusable Services implement business function – Interface should reflect actual business operations – Questions to be asked: • What are the business objects? • What information needs to be returned from these objects? • What operations can be performed on these objects Can be combined in new ways – Not restricted to specific flow in traditional programs Can be used by new interfaces – Trend is to have customers enter data themselves – Desktops – Phones 5 © 2014 IBM Corporation Services are modular Definition – Constructed in standardized units or dimensions for flexibility and variety in use Modern Applications – Rapidly changing requirements – Wide variety of interfaces • Different properties • New interfaces on short notice – State is driven by the interface 6 © 2014 IBM Corporation ILE (Integrated Language Environment) enables modular coding in IBM i languages Enables modular code – Fast calls – Fine grained reusable procedures Service programs – – – – – Common code Dynamic binding Encapsulation Update capable Activation can be deferred Teraspace – Large storage allocation 7 © 2014 IBM Corporation Stateless services are critical for reusability and scalability Service order may change based on interface – Traditional application flow may not match user expectation – Different users may request or enter information in different order Thousands of users entering data at once – Not a few users doing mass entry – Not feasible to assign a job to a user Library list situation – Changing the library list may have performance impacts – Important factor in consolidating systems 8 © 2014 IBM Corporation Stateless programming can be a significant change for traditional IBM i applications Monolithic programs are filled with state – – – – User interface state interlaced with business logic Difficult to separate Deep structural problem “Magic” solutions do not fix Two kinds of state – Modal interface state • Current screen • Dictated by program flow – Accumulated state • “Shopping cart” • Flexible operation order 9 © 2014 IBM Corporation Traditional green screen flow Customer Entry Address Entry 10 Billing Entry Item Entry Order Confirmation © 2014 IBM Corporation Web Flow Customer Items Confirmation Address 11 Billing © 2014 IBM Corporation Screen Scraping State Problem 12 Item Information Item List Wrong State Item Information Item List Item Information © 2014 IBM Corporation Event driven Consumer controls flow – Service is not driving – Consumer may be a person or another process Consumer controls timing – Service is very different than batch entry process Record locking becomes interesting – Service cannot rely on notification of external process ending – Pending transactions must be handled appropriately 13 © 2014 IBM Corporation Loosely coupled Service may be consumed over a network – Each interaction will have higher overhead – Green screen is a very light and responsive interface Interface must be designed for higher latency – Fewer calls with more data in each call 14 © 2014 IBM Corporation Loosely coupled interfaces require larger grained calls for performance Lower overhead Better performance High overhead Poor performance Consumer Provider Consumer Provider © 2014 IBM Corporation Service interfaces should be designed for extensibility Operations and parameters may need to be added – Shouldn't break existing interfaces – New operations – Optional parameters Business object model is important – Allows logical changes Original implementation may be limited – Underlying data – Available procedures Interfaces can be designed for future functionality 16 © 2014 IBM Corporation Business Level Interfaces Customer Billing Address Item Adjustments 17 Customer Order Customer Billing Address Items Price Billing Address Item Price © 2014 IBM Corporation What does implementing a service-oriented architecture mean to my IBM i applications? Code modernization – Separation of layers – Modularization – ILE RPG direction is toward modern coding practices Database modernization – Integrity in database – Use of SQL Development tools – SEU no longer being enhanced – RPG changes not recognized by SEU 18 © 2014 IBM Corporation What are some steps to modernize an IBM i application? Develop/Update application programming process and standards – – – – Current tools Modular and service oriented code Stateless when practical Current language techniques Design new architecture – Based on desired business process – Understand the relationship to current architecture Use the architecture and standards as code is developed or modified – Develop reusable procedures for any new interfaces or functions – Modify older code to use the procedures 19 © 2014 IBM Corporation More steps in modernization: Some parts of an application may required dedicated projects – Large programs – Unmaintainable programs Some parts of an application may be left alone – Rarely used – Few users Start now! – No magic solution – Lots of hard work ahead 20 © 2014 IBM Corporation That is a lot of change, how should it be prioritized? Prioritize business services – Designed based on business functions – Used with a variety of interfaces – Used with rapidly changing requirements Not everything must be done immediately – Infrequently used functions – Limited set of users – Infrequently changed Tactical tools – HATS – Open Access Watch for scope creep 21 © 2014 IBM Corporation How can do I know that I can handle future technologies? How do I design for (name an interface technology)? – Specific interface technologies will change – The fundamental principles work across technologies Flight/400 – Modernized years ago – Presented at LUG – 2010 Lombardi presentation used the interfaces Integrated Web Services Server – Compile service oriented procedure with integrated PCML option – Web based wizard can expose as web service – Service can be running in minutes 22 © 2014 IBM Corporation What are some current technologies? Web Services – SOAP – REST IBM MQ – – – – High function heterogeneous message queue Request/response Send and forget Publish and subscribe IBM Integration Bus – Can perform transforms 23 © 2014 IBM Corporation Integrated Web Services for IBM i Server – Rapidly deploy programs or procedures as web services – Simple web based wizard Client – Generate web services client code from WSDL – C++, C, RPG stubs http://www-03.ibm.com/systems/power/software/i/iws/index.html 24 © 2014 IBM Corporation What should I remember from this presentation? Principles are important – Specific technologies will change – Tooling will change Think about business functions – Probably related to current application flow – Needs to be thought through Use modern tools – Increased productivity – Continuing enhancements Get started – The basic principles will apply in the future – All the actual magic applies to modularized code 25 © 2014 IBM Corporation