Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects
|
|
- Calvin McKenzie
- 6 years ago
- Views:
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) 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 informationImproving 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 informationCSC 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 informationChapter 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 informationObject-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 informationA 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 informationPROGRAMMING 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 informationIntroduction 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 informationLecture 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 informationCAS 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 informationLecture 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 informationSorting. 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 informationGraphical 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 informationImprovement 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 informationJava 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 informationIdioms 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 informationDistributed 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
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 informationAP 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 informationChapter 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 informationDistributed 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 informationDistributed 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 informationInheritance 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 informationOperating 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 informationChapter 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 informationOOPs 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 informationKNSP: 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 informationCS555: 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 informationApplication 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 informationDOC // 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 informationProgramming 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 informationBuilding 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 informationMythoLogic: 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 informationA 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 informationREVIEW 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 informationPaytm 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 informationGrid-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 informationJAVA. 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 informationObject 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 informationCSC207H: 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 information04 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 informationOpenScape 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 information03 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 informationAdvanced 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 informationOntology-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 informationINTERNATIONAL 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 informationObjectives 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 informationIntroduction 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 informationA 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 informationIT6503 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 informationJAVA 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 informationCS506 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 informationObjects 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 informationRollbase 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 informationCS 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 informationMultiple 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 informationAtelier 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 informationConcept 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 informationJava 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 informationA- 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 informationMake 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 informationRFC 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 informationUsing 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 informationMessage 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 informationWA1278 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 informationZhifu 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 informationDYNAMIC 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 informationConstructing 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 informationSoftware 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 informationInterview 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 informationOverview. 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 informationLupin: 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 informationOverview. 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 informationThe 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 informationC++ 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 informationSUMMARY: 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 informationCompiler 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 informationCOMP 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 informationFILE - 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 informationDistributed 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 informationIn 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 informationWSAMI 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 informationCS 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 informationConstruction: 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
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 informationHigh-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 informationAnatomy 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 informationResolving 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 informationAbsolute 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 informationWrapping 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 informationSecond-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 informationSDMX 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 informationOutline. 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 informationJPred-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 informationDistributed 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 informationCOP 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 informationCS/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 informationDOWNLOAD 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 informationProgramming 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 informationIBD 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