SCA C++, C and COBOL Bryan Aupperle David Haney 13 Dec. 2007.

Slides:



Advertisements
Similar presentations
© 2006 IBM Corporation SOA on your terms and our expertise Software WebSphere Process Integration STEW 5.2 P – How to run the End 2 End Demo.
Advertisements

Introduction to C++ An object-oriented language Unit - 01.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Introduction to ASP.NET.
Etter/Ingber Engineering Problem Solving with C Fundamental Concepts Chapter 4 Modular Programming with Functions.
Three types of remote process invocation
C Language.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Adding Dynamic Content to your Web Site
A Presentation for the Enterprise Architect © 2008 IBM Corporation IBM Technology Day - SOA SOA Governance Miroslav Petrek IT Software Architect
Chapter 3 Data Abstraction: The Walls. © 2005 Pearson Addison-Wesley. All rights reserved3-2 Abstract Data Types Modularity –Keeps the complexity of a.
IBM WebSphere survey Kristian Bisgaard Lassen. University of AarhusIBM WebSphere survey2 Tools  WebSphere Application Server Portal Studio Business Integration.
Encapsulation by Subprograms and Type Definitions
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
II. Middleware for Distributed Systems
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
1 Review: Two Programming Paradigms Structural (Procedural) Object-Oriented PROGRAM PROGRAM FUNCTION OBJECT Operations Data OBJECT Operations Data OBJECT.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
INTRODUCING SCA Byungwook Cho Nov.2007.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Introduction to JavaServer Pages (JSP) Slides from Dr. Mark Llewellyn.
Web Services Description Language CS409 Application Services Even Semester 2007.
Information Management NTU Interprocess Communication and Middleware.
© 2006 IBM Corporation Flash Copy Solutions im Windows Umfeld TSM for Copy Services Wolfgang Hitzler Technical Sales Tivoli Storage Management
CS212: Object Oriented Analysis and Design Lecture 6: Friends, Constructor and destructors.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
VHDL FLI. FLI Definition FLI routines are C programming language functions that provide procedural access to information within the HDL simulator.
Nan Yang Chinese Terminologist Microsoft Language Excellence Shanghai, August 2008.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
ACS Error System APIs: C++ Bogdan Jeram European Southern Observatory July 2005ESO.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Introducing BPEL Concepts Oracle BPEL Process Manager.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
SCA Bindings Simon Holdsworth Piotr Przybylski. Agenda n SCA Bindings Overview l Bindings TC Charter n Bindings l Web Services Binding l JMS Binding l.
© 2007 IBM Corporation SOA on your terms and our expertise Software WebSphere Process Server and Portal Integration Overview.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Tu sca ny 1 The Tuscany Project in the Apache Incubator and The Service Component Architecture Jeremy Boynes Simon Nash 28 June 2006.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
How to write a MSGQ Transport (MQT) Overview Nov 29, 2005 Todd Mullanix.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
© 2005 IBM Corporation Discovering the Value of SOA with WebSphere Process Integration SOA on your terms and our expertise Building a Services Oriented.
 2008 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
SCA and Java n SCA provides support for multiple Java-based component implementation types l Java POJOs (implementation.java) l Spring Beans (implementation.spring)
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Steve Graham WS-ResourceFramework Modeling Stateful Resources With Web services OASIS WSRF TC F2F Wednesday, April 28th, 2004.
.NET Mobile Application Development XML Web Services.
© 2006 Pearson Addison-Wesley. All rights reserved 1-1 Chapter 1 Review of Java Fundamentals.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
ORACLE SOA 11g ONLINE TRAINING
RAD – 255 Certification Overview
CSE691 Software Models and Analysis.
APPENDIX a WRITING SUBROUTINES IN C
Prof. Leonardo Mostarda University of Camerino
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Review: Two Programming Paradigms
Additional Programming Language Support
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Apache Tuscany Demo BigBank Example
Introduction to Geoinformatics L-10. Managing GIS
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Legacy App as a Tuscany Service
DPACC API Guidelines 2019/10/12.
Presentation transcript:

SCA C++, C and COBOL Bryan Aupperle David Haney 13 Dec. 2007

Specification Status n C and C++ specification development proceeding in OASIS l Based on work started in Open SOA (OSOA) l Now proceeding in the SCA-C-C++ TC n COBOL specification remains under OSOA l SCA-C-C++ TC work will influence

SCA-C-C++ TC Work n Updated conformance statements n Definition of a conformance test suite n Formal definition of C/C++ Annotations n Updated C++ -> WSDL, WSDL -> C++ Mapping n Incorporation of SCA Policy

SCDL for C++ n interface.cpp l header – C++ header file describing the interface l class – (optional) Class defining the interface l callbackHeader – (optional) C++ header describing the callback interface l callbackClass – (optional) Class defining the callback interface l remotable – (optional) Indicates whether the service can be called from a remote system n implementation.cpp l library – Shared library defining the service factory l path – (optional) Path to search for the library l header – C++ header file describing the implementation l class – (optional) Class defining the implementation l scope – (optional) Specifies the lifetime and reuse options for an implementation instance

C++ APIs n ComponentContext l Primary interface for accessing SCA defined components. l Component Meta Information n getCurrent(), getURI(), getProperties(), getDataFactory() l Service Lookup n getService(), getServices() l Service References n getServiceReference(), getServiceReferences() n getSelfReference()

C++ APIs (cont) n ServiceReference l Interface for interacting with service instances l Conversational interface n getConversationID(), setConversationID() l Asynchronous interface n getCallbackID(), setCallbackID() n getCallback(), setCallback()

C++ WSDL Mapping n Defines a translation from a C++ class interface to a WSDL n Uses comment annotations to control the conversion n Defines mapping rules for: l primitive types l C++ Standard Library types l SDO l classes, structs, arrays, enums n Defines a mapping from a WSDL to a C++ class interface l Currently defers to the OMG WSDL to C++ Mapping l Alternative mappings are being reviewed.

C++ Example n Interface SCDL n Implementation SCDL <implementation.cpp library=“loan” header=“LoanServiceImpl.h”/>

C++ Example (cont) n LoanService Interface class LoanService { public: virtual bool approveLoan( unsigned long customerNumber, unsigned long loanAmount) = 0; };

C++ Example (cont) n LoanServiceImpl Interface class LoanServiceImpl : public LoanService { public: virtual bool approveLoan( unsigned long customerNumber, unsigned long loanAmount) { // … } };

C++ Example (cont) n SCA Application int main(void) { ComponentContextPtr context = ComponentContext::getCurrent(); LoanService* service = (LoanService*) context->getService(“LoanService”); bool result = service->approveLoan(12345, 100); return 0; }

SCDL for C n Interface defined by a set of functions n interface.c l header – header file describing the interface l callbackHeader – (optional) header file describing the callback interface l remotable – (optional) Indicates whether the service can be called from a remote system n implementation.c l module – binary executable for the component implementation l library – (optional) indicates whether the service is implemented as a library or a program l location – (optional) location of the module l scope – (optional) Specifies the lifetime and reuse options for an implementation instance

C APIs n Synchronous Programming l SCALocate(), SCALocateMultiple() – get handle(s) to services l SCAInvoke() – invokes an operation of a service l SCAProperty () – get the value of a property l SCAGetFaultMessage(), SCASetFaultMessage() – get or set a fault message for a service operation n Asynchronous Programming l SCAGetCallback() – get handle of callback instance l SCACallback() – invoke a callback operation l SCASetCallback() – set a callback function for a reference l SCASetCallbackID(), SCAGetCallbackID() – get or set the callback ID for a service instance n Conversation Services l SCAGetConversationID(), SCASetConversationID() – get or set a user provided conversation ID l SCAEndConversation() – end a conversation

C Example n Interface SCDL n Implementation SCDL

C Example (cont) n LoanService Interface char approveLoan( long customerNumber, long loanAmount); n LoanService Implementation char approveLoan( long customerNumber, long loanAmount) { … }

C Example (cont) n SCA Application void clientFunction() { … SCALocate(L”customerService”, &serviceToken, &compCode, &reason); SCAInvoke(serviceToken, L“getCreditRating”, sizeof(custNum), (void *)&custNum, sizeof(rating), (void *)&rating, &compCode, &reason); }

SCDL for COBOL n interface.cobol l copybook – copybook file describing the interface l callbackCopybook – (optional) copybook file that describing the callback interface l location – (optional) location of library containing the copybook files l remotable – (optional) Indicates whether the service can be called from a remote system n implementation.cobol l program –binary executable for the component implementation l location – (optional) location of library containing the binary executable l scope – (optional) Specifies the lifetime and reuse options for an implementation instance

COBOL APIs n Same functions as in C l Synchronous Programming n SCAProperty is not typed l Program-Based Implementation Support l Asynchronous Programming l Conversation Services

Implementation as Program n Support environments where function is provided by programs n API l SCAService() – get name of invoked service l SCAOperation() – get name of invoked operation l SCAMessageIn() – get input message SCAMessageOut() – set output message

COBOL Example n LoanService Interface 01 LoanServiceInf. name="LoanApplication" * input="CustomerName" * output="LoanAmount" 03 LoanApplication. 05 CustomerName PIC X(255). 05 LoanAmount PIC 9(4).

COBOL Example (cont) n LoanService Implementation PROCEDURE DIVISION. IN-THE-BEGINNING. PERFORM GET-MY-CONTEXT. EVALUATE My-Operation WHEN ApproveLoanOperation * Get service request MOVE length of CustomerNumber of ApproveLoan To InputMessageLength CALL "SCAMessageIn" using by content SCA-COMPCODE, SCA-REASON, My-Service, My-Operation, InputMessageLength, CustomerNumber of ApproveLoan PERFORM CUSTOMER-SERVICE * Return service response CALL "SCAMessageOut" using by content SCA-COMPCODE, SCA-REASON, My-Service, My-Operation, OutputMessageLength, LoanAmount of ApproveLoan WHEN OTHER CONTINUE END-EVALUATE. * Return to SCA runtime GOBACK. GET-MY-CONTEXT. CALL "SCAService" using by content SCA-COMPCODE, SCA-REASON, My-Service. CALL "SCAOperation" using by content SCA-COMPCODE, SCA-REASON, My-Operation.

COBOL Example (cont) n SCA Application PROCEDURE DIVISION.. CALL "SCALocate" using by content SCA-COMPCODE, SCA-REASON, CustomerServiceReference, CustomerServiceToken. CALL "SCAInvoke" using by content SCA-COMPCODE, SCA-REASON, My-CustomerServiceToken, CreditRatingOperation, InputMessagelength, CustomerNumber, OutputMessageLength, Rating.

C & COBOL WSDL Mapping n Defines a translation between language structures and WSDL n Defines type mapping rules for: l Primitive types l Structs or Groups l Variable length strings and unbounded arrays n Defines mapping rules between operations and functions

Annotations n Contained in comments, processed by tools n Interface l Invocation attribute n OneWay n Remotable n Callback l EndConversation n Implementation l Scope l Lifecycle l Conversation information l Property l Reference

Open Implementations n Apache Tuscany Native l -native.html -native.html l Implements pre-1.0 C++ specification l Working towards 1.0 compliance

OASIS References n Open CSA Member Section l open.org/committees/tc_home.php?wg_abbre v=opencsa-ms open.org/committees/tc_home.php?wg_abbre v=opencsa-ms n SCA-C-C++ Technical Committee l open.org/committees/tc_home.php?wg_abbre v=sca-c-cpp open.org/committees/tc_home.php?wg_abbre v=sca-c-cpp n SCA-C-C++ Charter l cpp/charter.php cpp/charter.php

OSOA References n OSOA SCA Specifications l ce+Component+Architecture+Specifica tions ce+Component+Architecture+Specifica tions l Specifications n SCA C++ Client and Implementation n SCA C Client and Implementation n SCA COBOL Client and Implementation

Thank You Merci Grazie Gracias Obrigado Danke Japanese English French Russian GermanItalian Spanish Brazilian Portuguese Arabic Traditional Chinese Simplified Chinese Thai

Backup

C++ APIs (cont) n Supplemental APIs l RefCountingPointer n Defines a reference-counted pointer interface l SCAException n Provides a hierarchy of exception classes for use with the SCA API. SCANullPointerException ServiceRuntimeException ServiceUnavailableException NoRegisteredCallbackException ConversationEndedException MultipleServicesException

C++ Annotations n Contained in comments, processed by tools n Interface Header @OneWay n Implementation Header File

C Annotations n Contained in comments, processed by tools n Header File @Conversational n Implementation File

COBOL Annotations n Contained in comments, processed by tools n Interface File @Conversational n Implementation File