420 likes | 430 Views
This framework provides students with the ability to build information systems using SOA principles, custom components, and integration with external services. It also offers instructors the tools to test and gain insight into the systems built by students.
E N D
Student SOA Lab Framework for development and testing of information systems Peter Leijten TU\e
Contents • SOA • Student SOA Lab • Functionality • Realization • IBM Websphere • Use Cases • Demonstration • Summary
Service Oriented Architecture (SOA) • Principles for the architecture of information systems • Architecture consists of service consumers, service providers and a service broker • Service providers handle requests from service consumers • A service provider may also be a service consumer • Service contract specifies the accessibility of a service • Service contract is implemented by an interface • Service Broker • Publication of services • Helps service consumers to find service providers • Separating the how from the what • Implementation is separated from the interface
SOA Example Service 1 Service 4 Service 2 Service 3 Service 5 Service 7 Service 6 Advantage SOA = Loose Coupling
SOA Example Service 8 Service 9 Service 1 Service 4 Service 2 Service 3 Service 5 Service 6 • Loose Coupling: • Easy change
SOA Example Service 10 Service 11 Service 8 Service 12 Service 9 • Loose Coupling: • Easy change • Re-use
Student SOA LabFunctionality • Students are able to build an information system (SOA) • Custom components • Use of Components off-the-shelf (COTS) • Integration with external services • Instructors must be able to offer students realistic exercises • Definition of a context • Logging through context-components • Instructors must be able to test and gain insight in the systems build by students • Manual/Automated testing
Student SOA Lab – RealizationConcept Student-Made System Student SOA Lab • Exercise Dependent Part: • Context components • Exercise Independent Part: • Generator/Collector • Student-System I/O Logger • Execution Trace Logger IBM WebSphere
IBM Websphere • Products • WID • Concepts • SCA • Implementation Technologies • BPEL • Human Task • Interface • Common Data Model • SDO • Adapters • Modules • CEI
IBM WebSphere ProductsRuntime Stack WebSphere BusinessServices Fabric CompositeBusinessApplications ProcessChoreography WebSphere Process Server ServiceConnectivity WebSphere ESB WebSphere Application Server ND AdvancedClustering WebSphere Application Server RuntimeFoundation Image: courtesy IBM
IBM WebsphereWebsphere Integration Developer • Integrated Development Environment • Provides visual editors for the development of components and the assembly of components • Enables deployment of components
IBM WebSphereService Component Architecture (SCA) Component Interface:How to call this component Reference:What thiscomponents calls • Component Model • Interface (sell side) • Reference (buy side) • Implementation (independent of technology) • Realizes part of SOA • Component provides a service through its interface • Component consumes services through a reference • Not: Service broker UniformRepresentation ofencapsulatedImplementation Image: courtesy IBM
IBM WebSphereImplementation Technologies • BPEL (Business Process Execution Language) • XML-based language • Business Processes • Orchestration/Choreography • Java • Human tasks • Business rules • Contains rules which are deduced from company policy or legal regulation • Information System has to respect these rules
IBM WebSphereBPEL(1) • Work-flow like language • Start / End • Activities: assign, invocation, receive, reply • Structures: while, foreach, choice, parallel activities
IBM WebSphereBPEL(2) • Long-running/Microflow • Scopes • Sub-process • isolation • Fault handler • Compensation handler (long-running) • Event handler (long-running) • Correlation (Long-running) • Find the right instance of a process • Field in the input for identification
IBM WebSphereHuman Task To-do task Invocation task • Three types of tasks • To-do task (service to human) (visual editor) • Invocation task (human to service) (visual editor) • Collaboration task (human to human) (API) • Two types of collaboration tasks • Subtasks, follow-on tasks • Escalations, three kinds of escalation • Ready, claimed and subtask • Task queue available through Java API
IBM WebSphereInterface • Web Service Definition Language (WSDL) • One or more operations • Type of operations • One-way • One or more input fields • Request/Response • One or more input fields • One or more output fields • Faults
IBM WebSphereCommon Data Model • XML Schema Definition (XSD) • in WID: records • Nested complex data-types • Inheritance Image: courtesy IBM
IBM WebSphereService Data Object (SDO) • Technology that allows heterogeneous data to be accessed in a uniform way • Java library • Use of common data model in Java • DataObject • Example: Assigning value to field firstname in DataObject DO: • DO.setString(“Piet”, customer/firstname);
IBM WebSphere Adapters SAP • Adapters enable integration with other systems and technologies • SAP, Siebel, JD Edwards, Peoplesoft, JDBC, ILOG • Email, file system SAP Adapter
IBM WebSphereModules • Modules are used in WebSphere to group components and make components available • Consists of one or more components • Components within a module can interact • Components within a module can be made available to systems outside of the module by using export components
IBM WebsphereModules Module A Module B • Protocols available for export • SCA • Web Service (SOAP/HTTP, SOAP/JMS) • MQ, JMS Comp Q Comp P Export Import
IBM WebSphereModules Java Application • All components (e.g., services, rules, human interactions) are represented consistently and invoked in the same way (SCA) • Best practice for SOA development • Define services • Orchestration of services using BPEL Human Task BPEL Business Process Business State Machine Business Rules Image: courtesy IBM
IBM WebSphere Common Event Infrastructure (CEI) • Enables the emitting, storing and retrieving of events • Events can be emitted from different levels • Component • BPEL • Events are stored in a Apache Derby Database • Retrieving of events using a Java API
Student SOA LabExercise Independent Part • Generator/Collector • Enables instructor to test a system • Automated generation of test-cases • Manual input of test-cases • Collection of system output • Student-System I/O Logger • Enables logging of input, output and intermediate output • Execution Trace Logger • Retrieves and parses CEI-events
Student SOA LabExercise Independent Part Student System Student-System I/O Logger Generator/ Collector Execution Trace Logger JDBC Adapter Student SOA Lab Export Import
Student SOA LabExercise dependent part • Context-components (external services) are predefined • Students are required to integrate context-components in their system • Context-components can be used to gain insight in systems • Logging
Student SOA LabExercise Dedependent Part Student System Context Import Student-System I/O Logger Generator/ Collector Execution Trace Logger JDBC Adapter Student SOA Lab Export Import Export
Student SOA Lab concept Student-Made System Student SOA Lab Exercise Independent Part Exercise Dependent Part Execution Trace Logger Stud-Sys I/O Logger Generator/ Collector Student-System Init Context Component 1 Context Component 2 Component B Component A CEI Apache Derby IBM WebSphere
Use CasesSupply Chain Management System • Customers, Factories, Warehouses, Service Broker • Factories fabricate a certain set of products • The fabrication process might need parts to complete. • Warehouses have inventories which hold products • Warehouses keep their inventories replenished • Service broker provides list of suppliers for a given product
Supply Chain Management SystemContext Components • LogInternalOrders • Log orders between suppliers • LogInventoryChanges • Log changes in the inventory of warehouses
Supply Chain Management SystemArchitecture Service Broker Service Router Factory Factory Warehouse Warehouse
Use CasesOpen University System • Student • Must be able to follow courses of his/her choice on the university of his/her choice • University • Must allow students to follow courses (administration) • Bank • Enables payments for external registrations • Teacher • Evaluates examinations for courses from students • Examinations Committee • Evaluates external registrations of students • Course Register • Offers information to students
Open University SystemContext Components • Central Register • Retrieve students • Retrieve universities • Retrieve courses • Retrieve prior knowledge • Retrieve courses offered by a given university • Log external registration • Log fulfilled payment • Retrieval interactions are logged
Open University SystemArchitecture Course Register ExaminationsCommittee ExaminationsCommittee Central Register Student Bank Teacher University University Teacher
DemonstrationTesting OUS using Student SOA Lab • Manual testing • Student 1 wants to follow course 10 at university 3 • Student 8 wants to follow course 16 at university 3 • Automatic test generation • Generate 3 test cases: • Student can be student 1 to 10 • Course can be course 1 to 20 • University can be university 1 to 5
OUS Testing Manual: StudentGroupName (string) : OUS StudentSystemPartner (string) : StudentPartner OperationName (string) : student TestCasesListName (string) :CourseRegistrationDataList OutputName (string) : output TestCases (anyType) : CourseRegistrationDataList (CourseRegistrationData[]) : CourseRegistrationDataList[0] (CourseRegistrationData) : StudentId (integer) : 1 CourseId (integer) : 10 UniversityId(Integer) : 3 CourseRegistrationDataList[1] (CourseRegistrationData) : StudentId (integer) : 8 CourseId (integer) : 16 UniversityId(Integer) : 3
OUS testing Test-case generation: StudentGroupName (string) : OUS StudentSystemPartner (string) : StudentPartner OperationName (string) : student NameType (string) : CourseRegistrationData NamespaceType (string) : http://OUSLib TestCaseAmount (integer) : 3 OutputName (string) : output TestCaseData (FieldDataList) :