Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects

Size: px
Start display at page:

Download "Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects"

Transcription

1 Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects Jörg Ritter and Christian Stussak Martin-Luther-University Halle-Wittenberg, Halle 06120, Germany, joerg.ritter@informatik.uni-halle.de, christian.stussak@informatik.uni-halle.de, WWW home page: Abstract. In this paper we present a stub and skeleton generator supporting dynamic objects for a single-sign-on webservice. This generator could produce stubs and skeletons for PHP as well as Java clients. In the case of a java client the generator provides an almost transparent view as working with a local copy of the single-sign-on solution. The situation for PHP clients is almost transparent as well providing features like function overloading, inheritance, and comfortable exception handling. 1 Introduction In cooperation with a local radio station we develop a single-sign-on solution for their website. The radio station SPUTNIK[1] offers their listeners web-based tools to communicate with each other, like forum, chat, and image galleries. Furthermore one may subscribe to receive newsletters and playlists via SMS and/or . Therefore the listener has to register in order to use the provided services. After a successful registration process the radio station provides singlesign-on for all offered services. On the other hand each of the named services has its own user management and is written in different languages like PHP and Java. The conglomeration of services is a subject of change, so the integration of new services should be as easy as possible. For a complete single-sign-on solution we have to provide a central user management and have to modify the implementation of these services, replacing their built-in user management. We decided to use the webservice technology based on XML and the SOAP protocol. The single-sign-on webservice is served by the application server Tomcat[2] in conjunction with the Apache SOAP implementation Axis[3]. Under these premises a client may call procedures of the webservice with simple data types as formal parameters and receives those simple data types as well. Our contribution is the generation of stubs and skeletons in order to support dynamic objects as formal parameters and return values. The paper is organized as follows. In Section 2 we motivate why we use an object-oriented approach in conjunction with webservices. In Section 3 the gen-

2 2 erator for PHP and Java stubs and skeletons is described in detail. We conclude our contribution in Section 4. 2 Motivation We will motivate the need for the object oriented paradigm in combination with webservices using the following simple scenario. One of the elementary requests to a single-sign-on service is querying if an user is already logged in or not. A typical example for PHP using the built-in SOAP extension is shown in Figure 1. The main drawback of this solution is the absence of a hierarchical and object- $handle=new SoapClient( ); $user=$handle->find( username=foo ); $session=$handle->get_session($user); $login_state=$handle->get_state_of_session($session); Fig. 1. A simple example to obtain the login state of a registered user foo oriented structure. After each statement we must check for valid results which is error-prone and complicates the client integration (error and validity checks are omitted in the example due to simplicity). Furthermore we are restricted to simple data types and arrays of these simple types (classes and, respectively, structures could be used too, if appropriate serializer/deserializers are provided). The exchange of dynamic objects is not supported by the SOAP protocol. A first attempt to overcome this issue was the introduction of a dispatcher to handle the dynamic creation of remote objects. Such a dispatcher has to modify each method (and each constructor) of the API of the webservice if it contains a formal parameter which is not of type string nor a simple data type. The same holds for methods if their return value is not of type string nor a simple data type. In these cases we substitute the type of the formal parameter or the return value, respectively, with an integer which acts as an unique identifier. As an example, suppose our webservice provides access to the member function find() of a class ALV_user_factory 1 : class ALV_user { class ALV_user_factory { public ALV_user[] find( String search_string ) { ; The modified signature of this method will be: 1 ALV is the abbreviation of the german project name Anmelde-, Login- und Verwaltungssystem, a synonym for the single-sign-on solution developed in cooperation with the radio station SPUTNIK

3 3 public int[] find(int ALV_user_factory_id, String search_string ); The type of the return value is replaced by an array of integers representing unique identifiers to each object in the array. The additional parameter of type int identifies the instance of the class ALV_user_factory. If the function find is called via SOAP the dispatcher has to instantiate an object of the class ALV_user_factory, then call the member function find() with the given string parameter, store each of the resulting ALV_user objects in a hashtable, and return the corresponding array of identifiers. In Figure 2 the PHP code using such a dispatcher to obtain the information about the login state of user foo is shown. For simplicity reasons we omitted the error handling which is quite complex in that case. $handle = new SoapClient( ); $ALV_main_id = $handle->new( Alv ); $ALV_user_factory_id = $handle->get_user_factory($alv_main_id); $ALV_user_ids=$handle->find(ALV_user_factory_id, username=foo ); $ALV_session_factory_id=$handle->get_session_factory($ALV_main_id); $ALV_session_id= $handle->session_of_user($alv_session_factory_id, $ALV_user_ids[0]); $loginstate=$handle->get_state($alv_session_id); Fig. 2. An example to obtain the login state of a registered user foo using a dispatcher for dynamic objects. Note that the function new in line 2 creates a remote object of type Alv and return the corresponding identifier. The usage of such a dispatcher allows us to deal with dynamic objects but still has a lot of drawbacks. At first there will be naming conflicts, if two classes have methods with the same name. At second the support of dynamic objects requires the introduction of the object identifiers in each method, which complicates the client code and make it error-prone. To overcome this situation we will hide this code in a generated stub and skeleton. The user is provided with a common object-oriented API while the necessary details dealing with dynamic objects in conjunction with webservices are encapsulated and thus hidden. As a consequence we deliver a transparent solution in which the clients are able to interact with the webservice based on the underlying server-sided API. Figure 3 shows the client code using a generated PHP stub. The generation of those stubs and the corresponding skeletons is addressed in the following section in detail. 3 Stub and Skeleton Generator In order to generate stubs and skeletons one has to analyze the code of the given webservice. We have focused on webservices implemented in Java and are

4 4 try{ $handle = new SoapClient( ); $ALV_main = new Alv( $handle, config_file ); $ALV_user=$ALV_main->get_user_factory()->find( username=foo ); $ALV_session= $ALV_main->get_session_factory()->session_of_user($ALV_user); $loginstate=$alv_session->get_state(); catch(soapfault $fault) { trigger_error((faultcode: {$fault->faultcode, faultstring: {$fault->faultstring)", E_USER_ERROR); exit(); catch( ALV_Failure $failure ) { trigger_error((faultcode: {$fault->faultcode, faultstring: {$fault->faultstring)", E_USER_ERROR); exit(); Fig. 3. Obtaining the login state of a registered user foo using a generated stub for PHP clients. The object-orient approach keeps the code simple and easy to understand. utilizing the Java Reflection API[5]. The Java Reflection API allows us to retreive all the necessary information about the specific webservice implementation. The generator itself is written in Java, too. Before we explain the particularities in case of PHP and Java we give some universal statements which hold for both. The generator starts its analysis with a given list of super classes or interfaces (in our example the class Alv). For each such class or interface a corresponding class is generated for each stub. All constructors and methods are encapsulated in one single class which represents the skeleton. Naming conflicts are solved automatically by the generator. This skeleton is used for all the different stubs. If the generator finds a method where one of the parameters or the return value is not of simple type, the analyzing process is started recursively if the type belongs to the given list of packages. As a consequence we will support only dynamic objects of the Java packages from this list. Inheritance, Classes and Interfaces The generator is capable of generating PHP and Java stubs with the same class hierarchy as that of the webservice. A problem arises if formal parameters or the return values of methods are interfaces. At compile time we do not know, which class of those who implement this interface are returned or given as parameter. We consider the function find() once again as example: public ALV_user[] find( String search_string ) { ; Let us further assume that ALV_user is an interface or an abstract class. The implementation of find at the remote side will create several instances of objects

5 5 which implements the interface ALV_user. The dispatcher delivers only identifiers to those objects but the stub has to create an instance of ALV_user which is an interface or an abstract class, too. Since we can not instantiate interfaces nor abstract classes we convert them to classes in the stub implementation. Data types Another issue we have to deal with is the different data types provided by Java, PHP, and the SOAP protocol. In particular, the simple data type char is not supported by the SOAP protocol. Another example is the type byte and short which are not defined in PHP. A generalized approach would be a data type mapping between the webservice, the SOAP protocol, and the programming languages of the stubs[7]. For simplicity reasons we currently stop the generation process if the webservice under consideration makes use of data types which have no counterpart in the target language or in the SOAP protocol. Exception Handling Exception handling is another important aspect in conjunction with webservices. If we are able to use the built-in exception model of the stub programming language we avoid complicated error code handling. In the case that an exception is thrown within the remote service it is encoded as SOAP fault exception and transfered to the corresponding stub. The stub catches this exception itself. The error message of the exception is parsed for an embedded string, specifically encoded by the skeleton. If there is no such embedded string or we detect an exception of unknown type, the SOAP fault exception is thrown. Otherwise the embedded string is decoded and an exception of equal type and properties as on the remote side is thrown. 3.1 Java Stub Generation The generation of the stub for Java clients is based on the tool WSDL2Java[6]. It allows us to produce the Java stub code out of the WSDL description of the skeleton. The output generated by WSDL2Java is extended with the dispatcher functionality. With respect to the limitations described above the Java stub gives an almost transparent view to the webservice while dealing with dynamic objects. 3.2 PHP Stub Generation Function Overloading The PHP-SOAP extension does currently not support overloading of functions and methods. Nevertheless we can provide overloading since it is supported by PHP (PHP version > 5). If we detect overloaded functions in the webservice, we resolve those cases by generating unique names for each of the overloaded function while incorporating the formal parameters in the function name. The PHP stub can detect which function was called by using the built-in utilities is_int, is_string and so on. It then calls the generated function for the corresponding formal parameters. At the remote side the skeleton translates it back to the original function call. Figure 4 illustrates the basic idea.

6 6 class OL { function call( $method_name, $arg_list ) { if ($method_name == f and count( $arg_list ) == 1) { $p=$arg_list[0]; if (is_int($p)) { // formal parameter is int else if (is_string($p)) { // formal parameter is string else { // error, function f called with wrong paramter type else { // error, unknown function called Fig. 4. A simple example of solving overloading within PHP stubs. 4 Conclusion We have proposed a stub and skeleton generator for Java and PHP clients of a single-sign-on webservice supporting dynamic objects. Using automatically generated stubs we simplify the integration of client applications and provide an object-oriented approach. As shown above, exception handling facilities can be used transparently as well. Based on our approach the documentation of the single-sign-on service API could be used for all clients with minor restrictions, too. The modular structure of the generator allows us to support other client languages, as long as they communicate via the SOAP protocol. References 1. MDR SPUTNIK, Website of the radio station SPUTNIK, contact reimar.schmidtke@mdr.de. (last access: October, 23rd 2005) 2. The Apache Jakarta Project, Apache Tomcat - a servlet container. (last access: October 23rd 2005) 3. The Apache Webservices Project, Axis, an implementation of the SOAP ( Simple Object Access Protocol ) submission to W3C. (last access: October 23rd 2005) 4. Sun Microsystem, Java 2 Platform. (last access: October 23rd 2005) 5. Sun Microsystem, The Reflection API. (last access: October 23rd 2005) 6. The Apache Webservices Project, WSDL2Java: Building stubs, skeletons, and data types from WSDL. (last access: October 23rd 2005) 7. Markus L. Noga and Welf Löwe, Mapping Data Types of Programming Language and Web Services, 2nd Nordic Conference on Web Services, NCWS2003, Proceedings.

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator

Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator Improving the Interoperability between Web Services and CORBA Using Pontifex A Generic Bridge Generator Markus Aleksy, Jan Czeranski, Martin Schader University of Mannheim, Germany {aleksy czeranski mscha}@wifo3.uni-mannheim.de

More information

CSC Java Programming, Fall Java Data Types and Control Constructs

CSC Java Programming, Fall Java Data Types and Control Constructs CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference

More information

Chapter 4. Internet Applications

Chapter 4. Internet Applications Chapter 4 Internet Application Protocols 1 Internet Applications! Domain Name System! Electronic mail! Remote login! File transfer! World Wide Web! All use client-server model 2 Names! Internet communication

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented

More information

A Comprehensive Assessment and Comparison of Asynchronous Invocation Patterns and Frameworks

A Comprehensive Assessment and Comparison of Asynchronous Invocation Patterns and Frameworks 1 A Comprehensive Assessment and Comparison of Asynchronous Invocation Patterns and Frameworks Amir Moazeni Shahab Danesh Institute of Higher Education a.moazeni@shahabdanesh.ac.ir Abstract Asynchronous

More information

PROGRAMMING LANGUAGE 2

PROGRAMMING LANGUAGE 2 31/10/2013 Ebtsam Abd elhakam 1 PROGRAMMING LANGUAGE 2 Java lecture (7) Inheritance 31/10/2013 Ebtsam Abd elhakam 2 Inheritance Inheritance is one of the cornerstones of object-oriented programming. It

More information

Introduction of PDE.Mart

Introduction of PDE.Mart Grid-Based PDE.Mart A PDE-Oriented PSE for Grid Computing GY MAO, M. MU, Wu ZHANG, XB ZHANG School of Computer Science and Engineering, Shanghai University, CHINA Department of Mathematics, Hong Kong University

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Sorting. Sorting. Selection sort

Sorting. Sorting. Selection sort Sorting 1 Sorting Given a linear list of comparable objects of the same class (or values of the same type), we wish to sort (or reärrange) the objects in the increasing order. For simplicity, let s just

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

Improvement to the Smart Data Server with SOAP *

Improvement to the Smart Data Server with SOAP * Improvement to the Smart Data Server with * WANJUN HUANG, UWE ROTH, CHRISTOPH MEINEL Institute of Telematics Bahnhofstr. 30-32,D-54292, Trier GERMANY {huang,roth,meinel}@ti.fhg.de Abstract: - As a distributed

More information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Inheritance and Encapsulation. Amit Gupta

Inheritance and Encapsulation. Amit Gupta Inheritance and Encapsulation Amit Gupta Project 1 How did it go? What did you like about it? What did you not like? What can we do to help? Suggestions Ask questions if you don t understand a concept

More information

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8.

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. OOPs Concepts 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. Type Casting Let us discuss them in detail: 1. Data Hiding: Every

More information

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache Xidong Wang & Shiliang Hu {wxd, shiliang}@cs.wisc.edu Department of Computer Science, University of Wisconsin Madison 1. Introduction

More information

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization

More information

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features

More information

DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK

DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK 26 April, 2018 DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK Document Filetype: PDF 343.68 KB 0 DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK This tutorial shows you to create and deploy a simple standalone

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Building Web Services in Java

Building Web Services in Java Building Web Services in Java Andy Longshaw, Blue Skyline Andy Longshaw Andy Longshaw is an independent consultant, writer and educator specialising in J2EE, XML, Web-based technologies and components,

More information

MythoLogic: problems and their solutions in the evolution of a project

MythoLogic: problems and their solutions in the evolution of a project 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. MythoLogic: problems and their solutions in the evolution of a project István Székelya, Róbert Kincsesb a Department

More information

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology International Workshop on Energy Performance and Environmental 1 A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology P.N. Christias

More information

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION c08classandmethoddesign.indd Page 282 13/12/14 2:57 PM user 282 Chapter 8 Class and Method Design acceptance of UML as a standard object notation, standardized approaches based on work of many object methodologists

More information

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object

More information

Grid-Based PDE.Mart: A PDE-Oriented PSE for Grid Computing

Grid-Based PDE.Mart: A PDE-Oriented PSE for Grid Computing Grid-Based PDE.Mart: A PDE-Oriented PSE for Grid Computing Guoyong Mao School of Computer Science and Engineering Shanghai University, Shanghai 200072, China gymao@mail.shu.edu.cn Wu Zhang School of Computer

More information

JAVA. 1. Introduction to JAVA

JAVA. 1. Introduction to JAVA JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

CSC207H: Software Design. Java + OOP. CSC207 Winter 2018

CSC207H: Software Design. Java + OOP. CSC207 Winter 2018 Java + OOP CSC207 Winter 2018 1 Why OOP? Modularity: code can be written and maintained separately, and easily passed around the system Information-hiding: internal representation hidden from the outside

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

OpenScape Voice V8 Application Developers Manual. Programming Guide A31003-H8080-R

OpenScape Voice V8 Application Developers Manual. Programming Guide A31003-H8080-R OpenScape Voice V8 Application Developers Manual Programming Guide A31003-H8080-R100-4-7620 Our Quality and Environmental Management Systems are implemented according to the requirements of the ISO9001

More information

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI 03 Remote invoaction Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/23 Remote invocation Mechanisms for process communication on a Built on top of interprocess communication primitives Lower

More information

Advanced Java Programming

Advanced Java Programming Advanced Java Programming Length: 4 days Description: This course presents several advanced topics of the Java programming language, including Servlets, Object Serialization and Enterprise JavaBeans. In

More information

Ontology-based Service Discovery Front-end Interface for GloServ

Ontology-based Service Discovery Front-end Interface for GloServ Ontology-based Service Discovery Front-end Interface for GloServ Knarig Arabshian, Christian Dickmann and Henning Schulzrinne Department of Computer Science Columbia University, New York NY 10027, USA

More information

INTERNATIONAL INDIAN SCHOOL, RIYADH XI XII BOYS SECTION INFORMATICS PRACTICES WORKSHEET 15 TH CHAPTER DATABASE TRANSACTION IMPORTANT QUESTION

INTERNATIONAL INDIAN SCHOOL, RIYADH XI XII BOYS SECTION INFORMATICS PRACTICES WORKSHEET 15 TH CHAPTER DATABASE TRANSACTION IMPORTANT QUESTION INTERNATIONAL INDIAN SCHOOL, RIYADH XI XII BOYS SECTION INFORMATICS PRACTICES WORKSHEET 15 TH CHAPTER DATABASE TRANSACTION Grade- XII IMPORTANT QUESTION 1. What is the benefit of Transaction? 2. What are

More information

Objectives for this class meeting. 1. Conduct review of core concepts concerning contracts and pre/post conditions

Objectives for this class meeting. 1. Conduct review of core concepts concerning contracts and pre/post conditions CSE1720 Click to edit Master Week text 01, styles Lecture 02 Second level Third level Fourth level Fifth level Winter 2015! Thursday, Jan 8, 2015 1 Objectives for this class meeting 1. Conduct review of

More information

Introduction to Eiffel

Introduction to Eiffel Introduction to Eiffel Martin Nordio, Christian Estler ETH Zurich Distributed Software Engineering Lab 1 Overview Part 1: Language Constructs Ø Basics: definition, if then else, expressions, loops and

More information

A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains

A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains Ricardo Soto 1,2 and Laurent Granvilliers 1 1 LINA, CNRS, Université de Nantes, France 2 Escuela

More information

IT6503 WEB PROGRAMMING. Unit-I

IT6503 WEB PROGRAMMING. Unit-I Department of Information Technology Question Bank- Odd Semester 2015-2016 IT6503 WEB PROGRAMMING Unit-I SCRIPTING 1. What is HTML? Write the format of HTML program. 2. Differentiate HTML and XHTML. 3.

More information

JAVA GUI PROGRAMMING REVISION TOUR III

JAVA GUI PROGRAMMING REVISION TOUR III 1. In java, methods reside in. (a) Function (b) Library (c) Classes (d) Object JAVA GUI PROGRAMMING REVISION TOUR III 2. The number and type of arguments of a method are known as. (a) Parameter list (b)

More information

CS506 Web Design & Development Final Term Solved MCQs with Reference

CS506 Web Design & Development Final Term Solved MCQs with Reference with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar

More information

Objects and Classes. Amirishetty Anjan Kumar. November 27, Computer Science and Engineering Indian Institue of Technology Bombay

Objects and Classes. Amirishetty Anjan Kumar. November 27, Computer Science and Engineering Indian Institue of Technology Bombay Computer Science and Engineering Indian Institue of Technology Bombay November 27, 2004 What is Object Oriented Programming? Identifying objects and assigning responsibilities to these objects. Objects

More information

Rollbase SOAP API Examples

Rollbase SOAP API Examples Rollbase SOAP API Examples Updated At: October 15, 2008 CONTENTS PHP...2 PHP 5 SOAP EXTENSION CLASSES... 2 CREATING A SOAP CLIENT... 3 SOAP CALLS... 4 getobjectdef... 4 search... 5 getdataobj... 6 getbinarydata...

More information

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE PART A UNIT I 1. Differentiate object oriented programming from procedure oriented programming. 2. Define abstraction and encapsulation. 3. Differentiate

More information

Multiple Inheritance, Abstract Classes, Interfaces

Multiple Inheritance, Abstract Classes, Interfaces Multiple Inheritance, Abstract Classes, Interfaces Written by John Bell for CS 342, Spring 2018 Based on chapter 8 of The Object-Oriented Thought Process by Matt Weisfeld, and other sources. Frameworks

More information

Atelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Atelier Java - J1. Marwan Burelle.  EPITA Première Année Cycle Ingénieur. marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

Java Training For Six Weeks

Java Training For Six Weeks Java Training For Six Weeks Java is a set of several computer software and specifications developed by Sun Microsystems, later acquired by Oracle Corporation that provides a system for developing application

More information

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction OGIES 6/7 A- Core Java The Core Java segment deals with the basics of Java. It is designed keeping in mind the basics of Java Programming Language that will help new students to understand the Java language,

More information

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up GenericUDAFCaseStudy Writing GenericUDAFs: A Tutorial User-Defined Aggregation Functions (UDAFs) are an excellent way to integrate advanced data-processing into Hive. Hive allows two varieties of UDAFs:

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

Using XML-RPC in Secure Database Administration on the Web

Using XML-RPC in Secure Database Administration on the Web Using XML-RPC in Secure Database Administration on the Web Silvana Solomon Department of Digital Communications University Al.I.Cuza of Iasi, Romania sylvy@uaic.ro Catalin Varvara RoEduNet Iasi Branch

More information

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1 Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

DYNAMIC INVOCATION OF WEB SERVICES

DYNAMIC INVOCATION OF WEB SERVICES , pp.-78-82 Available online at http://www.bioinfo.in/contents.php?id=33 DYNAMIC INVOCATION OF WEB SERVICES TERE G.M. 1 *, JADHAV B.T. 2 AND MUDHOLKAR R.R. 3 1Department of Computer Science, Shivaji University,

More information

Constructing distributed applications using Xbeans

Constructing distributed applications using Xbeans Constructing distributed applications using Xbeans Bruce Martin jguru, San Mateo, USA martin@jguru.com http://www.jguru.com Abstract: An Xbean is a software component that takes XML as input, processes

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

Interview Questions of C++

Interview Questions of C++ Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.

More information

Overview. Elements of Programming Languages. Objects. Self-Reference

Overview. Elements of Programming Languages. Objects. Self-Reference Overview Elements of Programming Languages Lecture 10: James Cheney University of Edinburgh October 23, 2017 Last time: programming in the large Programs, packages/namespaces, importing Modules and interfaces

More information

Lupin: from Web Services to Web-based Problem Solving Environments

Lupin: from Web Services to Web-based Problem Solving Environments Lupin: from Web Services to Web-based Problem Solving Environments K. Li, M. Sakai, Y. Morizane, M. Kono, and M.-T.Noda Dept. of Computer Science, Ehime University Abstract The research of powerful Problem

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

The major elements of the object-oriented model

The major elements of the object-oriented model The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction

More information

C++ Important Questions with Answers

C++ Important Questions with Answers 1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

Compiler Construction I

Compiler Construction I TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Compiler Construction I Dr. Michael Petter, Dr. Axel Simon SoSe 2014 1 / 30 Topic: Semantic Analysis 2 / 30 Semantic Analysis Chapter 1: Type Checking

More information

COMP 401 Spring 2013 Midterm 1

COMP 401 Spring 2013 Midterm 1 COMP 401 Spring 2013 Midterm 1 I have not received nor given any unauthorized assistance in completing this exam. Signature: Name: PID: Please be sure to put your PID at the top of each page. This page

More information

FILE - JAVA WEB SERVICES HEAD FIRST

FILE - JAVA WEB SERVICES HEAD FIRST 04 November, 2017 FILE - JAVA WEB SERVICES HEAD FIRST Document Filetype: PDF 192.6 KB 0 FILE - JAVA WEB SERVICES HEAD FIRST RESTful Web Services Quick Guide. Just finished reading HEAD FIRST JAVA, whats

More information

Distributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 03. Remote Procedure Calls Paul Krzyzanowski Rutgers University Fall 2017 1 Socket-based communication Socket API: all we get from the OS to access the network Socket = distinct end-to-end

More information

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and

More information

WSAMI Middleware Architecture Guide

WSAMI Middleware Architecture Guide WSAMI Middleware Architecture Guide Author: Daniele Sacchetti daniele.sacchetti@inria.fr Table of contents 1. INTRODUCTION... 2 2. WSAMI... 4 3. CORE BROKER... 7 3.1. DEPLOYMENT SYSTEM... 9 3.2. SYSTEM

More information

CS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction

CS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction Socket-based communication Distributed Systems 03. Remote Procedure Calls Socket API: all we get from the to access the network Socket = distinct end-to-end communication channels Read/write model Line-oriented,

More information

Construction: High quality code for programming in the large

Construction: High quality code for programming in the large Construction: High quality code for programming in the large Paul Jackson School of Informatics University of Edinburgh What is high quality code? High quality code does what it is supposed to do......

More information

/ / JAVA TRAINING

/ / JAVA TRAINING www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.

More information

High-Level Server Side Web Scripting in

High-Level Server Side Web Scripting in PADL 2001 High-Level Server Side Web Scripting in Michael Hanus Christian-Albrechts-Universität Kiel 1 HTML/CGI PROGRAMMING Early days of the World Wide Web: web pages with static contents Common Gateway

More information

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis? Anatomy of a Compiler Program (character stream) Lexical Analyzer (Scanner) Syntax Analyzer (Parser) Semantic Analysis Parse Tree Intermediate Code Generator Intermediate Code Optimizer Code Generator

More information

Resolving of Intersection Types in Java

Resolving of Intersection Types in Java Resolving of Intersection Types in Java Martin Plümicke University of Cooperative Education Stuttgart Department of Information Technology Florianstraße 15, D 72160 Horb m.pluemicke@ba-horb.de Abstract.

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

Second-generation: Assembly language. Figure 6.1 Generations of programming languages. Assembly Language Characteristics.

Second-generation: Assembly language. Figure 6.1 Generations of programming languages. Assembly Language Characteristics. Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Chapter 6: Programming Languages 6.1 Historical Perspective 6.2 Traditional Programming Concepts 6.3

More information

SDMX self-learning package XML based technologies used in SDMX-IT TEST

SDMX self-learning package XML based technologies used in SDMX-IT TEST SDMX self-learning package XML based technologies used in SDMX-IT TEST Produced by Eurostat, Directorate B: Statistical Methodologies and Tools Unit B-5: Statistical Information Technologies Last update

More information

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4 EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks

More information

JPred-P 2. Josh Choi, Michael Welch {joshchoi,

JPred-P 2. Josh Choi, Michael Welch {joshchoi, JPred-P 2 Josh Choi, Michael Welch {joshchoi, mjwelch}@cs.ucla.edu 1. Introduction Precondition and postcondition checking on methods aids the development process by explicitly notifying the programmer

More information

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question) CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers

More information

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully

More information

Programming for the Web with PHP

Programming for the Web with PHP Aptech Ltd Version 1.0 Page 1 of 11 Table of Contents Aptech Ltd Version 1.0 Page 2 of 11 Abstraction Anonymous Class Apache Arithmetic Operators Array Array Identifier arsort Function Assignment Operators

More information

IBD Intergiciels et Bases de Données

IBD Intergiciels et Bases de Données IBD Intergiciels et Bases de Données RMI-based distributed systems Fabien Gaud, Fabien.Gaud@inrialpes.fr Overview of lectures and practical work Lectures Introduction to distributed systems and middleware

More information