service-oriented computing and software integration in...

8
Service-Oriented Computing and Software Integration in Computing Curriculum Yinong Chen 1 and Zhizheng Zhou 2 1 School of Computing, Informatics, and Decision Systems Engineering, Arizona State University Tempe, AZ 85287-8809, U.S.A. 2 School of Computer Science and Technology, Shandong University of Finance and Economics Shandong, China Abstract Web software development and cloud computing based on Service-Oriented Architecture (SOA) represent the latest parallel distributed computing theories, practices, and technologies. As a distributed software development diagram, SOA is being taught in many computer science programs. We do not suggest using SOA to replace the currently taught Object- Oriented Computing paradigm. As SOA is based on Object-Oriented Computing, we suggest teaching SOA as the continuation and extension. At Arizona State University, SOA paradigm is incorporated into our Computing Science program since 2006. This paper presents the topics of the related courses and the open resources created for the courses, which are available for public accesses, including textbooks, lecture presentation slides, tests and assignments, software tools, and a repository of components, services and applications. Keywords –Service-oriented architecture, Robot as a Service, software integration, service repository, computing curriculum I. INTRODUCTION Software development has evolved for several generations from imperative, procedural, object- oriented, to distributed object-oriented computing paradigms [1][2]. As the emergence of Service- Oriented Architecture (SOA) and Service-Oriented Computing (SOC) [3][4][5], software development is shifting from distributed object-oriented development, represented by for example, CORBA [5] developed by OMG (Object Management Group) and Distributed Component Object Model (DCOM) [7] developed by Microsoft, to service-oriented development (SOD). SOA, SOC, and SOD have been adopted and supported by all major computer companies. The related technologies have been standardized by OASIS, W3C, and ISO [8]. Government agencies also adopted SOC in their system development [9]. Before proceeding further, we present the fundamental concepts used in the paper and in other literatures: SOA, SOC, SOD, and cloud computing [3][4][5][8]. A system is typically described by three aspects: architecture, interface, and behavior that defines the transformation of input to out. SOA addresses the architecture aspect, which considers a software system consisting of a collection of loosely coupled services that communicate with each other through standard interfaces and standard protocols [3][4]. These services are platform independent. Services can be published in public or private directories or repositories for software developers to compose their applications. As a software architecture, SOA is a conceptual model that concerns the organization and interfacing among the software components (services). It does not concern the development of operational software. SOC on the other hand addresses the interface and behavior aspects of a system. SOC includes service interface such as WSDL and communication protocols such as SOP and HTTP, computing concepts and principles, methods, algorithms, and coding. SOD concerns the entire software development life cycle based on SOA and SOC, including requirement, specification, architecture design, composition, service discovery, service implementation, testing, evaluation, deployment, and maintenance in a given environment [8]. SOD also involves using the current technologies and tools to effectively produce operational software. In the Computer Science program at the Arizona State University (ASU), particularly in the Software Engineering concentration, SOA, SOC, and SOD are taught in a number of courses, including the freshman course CSE101/FSE100 (Introduction to Engineering) [10], the sophomore course CSE240 (Introduction to Programming Languages) [2], senior course CSE445 (Distributed Software Development), and CSE446 (Software Integration and Engineering). This paper will discuss CSE101/FSE100, CSE445 and CSE446, where parallel and distributed computing is the key topics of these courses. While teaching these courses, we collected and created abundance of resources, which are made available to all instructors and students around the world, including textbooks [2][8][10], syllabi [11][18][19], presentation slides, tests and assignments, a repository of sample services and applications for public accesses [23]. We will also present the outreach of the course in our partner universities in China. In the rest of the paper, sections II presents the service-oriented robotics programming in CSE101/ FSE100. Sections III and IV discuss the core topics of SOA, SOC, and SOD taught in CSE445 and CSE446.

Upload: others

Post on 11-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

Service-Oriented Computing and Software Integrationin Computing Curriculum

Yinong Chen1 and Zhizheng Zhou2

1School of Computing, Informatics, and Decision Systems Engineering, Arizona State UniversityTempe, AZ 85287-8809, U.S.A.

2School of Computer Science and Technology, Shandong University of Finance and EconomicsShandong, China

Abstract — Web software development and cloudcomputing based on Service-Oriented Architecture(SOA) represent the latest parallel distributed computingtheories, practices, and technologies. As a distributedsoftware development diagram, SOA is being taught inmany computer science programs. We do not suggestusing SOA to replace the currently taught Object-Oriented Computing paradigm. As SOA is based onObject-Oriented Computing, we suggest teaching SOA asthe continuation and extension. At Arizona StateUniversity, SOA paradigm is incorporated into ourComputing Science program since 2006. This paperpresents the topics of the related courses and the openresources created for the courses, which are available forpublic accesses, including textbooks, lecture presentationslides, tests and assignments, software tools, and arepository of components, services and applications.

Keywords –Service-oriented architecture, Robot as aService, software integration, service repository, computingcurriculum

I. INTRODUCTION

Software development has evolved for severalgenerations from imperative, procedural, object-oriented, to distributed object-oriented computingparadigms [1][2]. As the emergence of Service-Oriented Architecture (SOA) and Service-OrientedComputing (SOC) [3][4][5], software development isshifting from distributed object-oriented development,represented by for example, CORBA [5] developed byOMG (Object Management Group) and DistributedComponent Object Model (DCOM) [7] developed byMicrosoft, to service-oriented development (SOD).SOA, SOC, and SOD have been adopted and supportedby all major computer companies. The relatedtechnologies have been standardized by OASIS, W3C,and ISO [8]. Government agencies also adopted SOC intheir system development [9].

Before proceeding further, we present thefundamental concepts used in the paper and in otherliteratures: SOA, SOC, SOD, and cloud computing[3][4][5][8].

A system is typically described by three aspects:architecture, interface, and behavior that defines thetransformation of input to out. SOA addresses thearchitecture aspect, which considers a software system

consisting of a collection of loosely coupled servicesthat communicate with each other through standardinterfaces and standard protocols [3][4]. These servicesare platform independent. Services can be published inpublic or private directories or repositories for softwaredevelopers to compose their applications. As a softwarearchitecture, SOA is a conceptual model that concernsthe organization and interfacing among the softwarecomponents (services). It does not concern thedevelopment of operational software.

SOC on the other hand addresses the interface andbehavior aspects of a system. SOC includes serviceinterface such as WSDL and communication protocolssuch as SOP and HTTP, computing concepts andprinciples, methods, algorithms, and coding.

SOD concerns the entire software development lifecycle based on SOA and SOC, including requirement,specification, architecture design, composition, servicediscovery, service implementation, testing, evaluation,deployment, and maintenance in a given environment[8]. SOD also involves using the current technologiesand tools to effectively produce operational software.

In the Computer Science program at the ArizonaState University (ASU), particularly in the SoftwareEngineering concentration, SOA, SOC, and SOD aretaught in a number of courses, including the freshmancourse CSE101/FSE100 (Introduction to Engineering)[10], the sophomore course CSE240 (Introduction toProgramming Languages) [2], senior course CSE445(Distributed Software Development), and CSE446(Software Integration and Engineering).

This paper will discuss CSE101/FSE100, CSE445and CSE446, where parallel and distributed computingis the key topics of these courses. While teaching thesecourses, we collected and created abundance ofresources, which are made available to all instructorsand students around the world, including textbooks[2][8][10], syllabi [11][18][19], presentation slides,tests and assignments, a repository of sample servicesand applications for public accesses [23]. We will alsopresent the outreach of the course in our partneruniversities in China.

In the rest of the paper, sections II presents theservice-oriented robotics programming in CSE101/FSE100. Sections III and IV discuss the core topics ofSOA, SOC, and SOD taught in CSE445 and CSE446.

Page 2: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

Section V presents the repository of resources. SectionVI outlines the textbook developed for the courses.Section VI shows, as an example, the enrollmentshistory and evaluation scores of CSE 445/598.

II. SERVICE-ORIENTED ROBOTICS PROGRAMMING

CSE101 is a course required for all students inComputer Science program and Computer SystemEngineering program at Arizona State University. Thecourse consists of one lecture hour and three lab hourseach week for 15 weeks. The main tasks in the three labhours are using service-oriented robotics developmentto learn the engineering design process. Thedevelopment environment used is Microsoft RoboticsDeveloper Studio (MRDS) and its Visual ProgrammingLanguage (VPL) [12] and Web-based roboticsprogramming environment developed at Arizona StateUniversity [17]. First released in 2006, MRDS and VPLlaid an important milestone in service-orientedcomputing. VPL is architecture-driven and is a service-oriented programming language that allows students todevelop services, deploy the services into a repository,and then use the services in the repository to developworkflow-based robotics applications.

MRDS is based on the .Net framework. VPL, C#,and Visual Basic can be used to program services aswell as applications. MRDS support distributed andevent-driven programming model. The services can beadded into MRDS’s service repository. As acontribution to MRDS, ASU Repository has included anumber services and applications that can be addedinto MRDS repository and made MRDS services.

We piloted the first offer of the service-orientedrobotics development in CSE10 in Fall 2006. Thecourse evolved to the form of today after eight years’offerings. A number of resources have been developedto support the course, including syllabus [11], the labmanual [12], videos of sample robotics projects [11], arepository of services and sample applications [23].Figure 1 shows the Web-based programmingenvironment using the concept of Robot as a Service.As the services hide the hardware and programmingdetails, it allows students to better understand differentmaze algorithms [21]. Using this simple Webenvironment, student can design an autonomous mazenavigation algorithm, such as a short-distance-basedgreedy algorithm and a wall-following algorithmwithout prior programming knowledge. A mazenavigation program can be written using a few drop-down commands. The virtual robot in the Web cancommunicate and synchronize with the physical robotto add excitement to the learners. After students haveunderstood the algorithm, they can use VPL to write theprogram that can run in MSRD simulation environmentand using physical NXT robot.

As the materials are easy to learn, exciting, andeducational, we have proposed to teach the service-

oriented robotics development as a part of the highschool computing course. The proposal was funded bythe U.S. Department of Education’s FIPSE program(2007 to 2010) [13], which leads to the implementationof the course in Coronado High School [14][15] andthe summer Robotics Camps for high school students[16]. A teacher’s training camp has been establishedusing the funding from FIPSE and from ArizonaScience Foundation. Over 60 teachers has been trainedsince 2007, and the service-oriented roboticsprogramming course has been disseminated in manyhigh schools in Arizona through these teachers.

Figure 1. Web-based robotics programming environment

Figure 2 shows the short-distance greedy algorithmgiven in finite state machine to be implemented in VPLenvironment. Various computer science concepts areembedded into the visual programming and service-oriented integration.

Figure 2. Two-distance algorithm in finate state machine

The program is also disseminated to the universitiesin other countries, particularly, in China. A jointtextbook is written in Chinese language with ShandongUniversity of Finance and Economics, ChongqingUniversity, and Zhejiang University, and Intel China[10]. The course is first taught in these universities andfollowed by many other universities.

III. DISTRIBUTED SOFTWARE DEVELOPMENT

In the Computer Science (CS) program at ASU,there is a Software Engineering (SE) concentration. SEStudents are required to take the following four courses,in addition to the required CS core courses:

CSE445: Distributed Software Development CSE446: Software Integration and Engineering

Page 3: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

CSE460: Software Analysis and Design CSE464: Software Quality Assurance and

TestingCSE445 and CSE446 form a sequence and are

designed to teach the latest distributed computing andsoftware integration techniques in service-orientedcomputing, as well as the latest technologies supportingthe development of service-oriented software. Thetopics of CSE445 will be discussed in this section andthe topics of CSE446 will be presented in the nextsection.

2.1 Course Objectives, Outcomes and ContentsCSE445 is the first class in our computer science

program to discuss parallel and distributed softwaredevelopment in depth. The objectives and outcomes ofa course include [18]:1. To develop an understanding of the software

engineering of programs using concurrency andsynchronization, with the following outcomes:Students can identify the application, advantages,and disadvantages of concurrency, threads, andsynchronization; Students can apply designprinciples for concurrency and synchronization;Students can design and write programsdemonstrating the use of concurrency, threads, andsynchronization.

2. To develop an understanding of the development ofdistributed software, with the following outcomes:Students can recognize alternative distributedcomputing paradigms and technologies; Studentscan identify the phases and deliverables of thesoftware lifecycle in the development of distributedsoftware; Students can create the requireddeliverables in the development of distributedsoftware in each phase of a software lifecycle;Students understand the security and reliabilityattributes of distributed applications.

3. To develop an ability to design and publish servicesas building blocks of service-oriented applications,with the following outcomes: Students understandthe role of service publication and servicedirectories; Students can identify available servicesin service registries; Students can design services ina programming language and publish services forthe public to use.

4. To build skills in using a current technology fordeveloping distributed systems and applications,with the following outcomes: Students can developdistributed programs using the current technologyand standards; Students can use the currentframework to develop programs and Webapplications using graphical user interfaces, remoteservices, and workflow.CSE445 is designed to achieve the objectives and

outcomes of the course. The course contents areorganized in six units:1. Introduction to Parallel and Distributed Computing:

This unit gives an overview of the area and the main

topics to be discussed in the course. It coversparallel and distributed computing paradigm,distributed software architecture, design patterns,concepts of service-oriented architecture, service-oriented computing, and service-oriented softwaredevelopment.

2. Parallel and Distributed Computing with Multi-threading: This unit covers the fundamental issues inparallel distributed computing, including criticaloperations, synchronization, resource locking versusunbreakable operations, semaphore, events andevent coordination, and event-driven distributedcomputing in Web environment. As a part of ourparallel computing initiative [24], we also cover theperformance issues of multithreading and distributedcomputing under the multi-core architecture support[25].

3. Essentials in Service-Oriented distributed SoftwareDevelopment: This unit covers the essentialcomponents and gives a quick start of developingdistributed software, including developmentenvironments, service-oriented computing standardsand interfaces, developing services as serviceproviders, understanding service brokers,discovering and publishing services in servicebrokers, and developing service clients thatconsuming services.

4. XML Data Representation and Processing: This unitdiscusses XML and related technologies supportingincluding XML fundamentals, XML data processingin SAX, DOM, and XPath models, XML typedefinition and schema, XML validation, and XMLStylesheet language.

5. Web Application and Web Data Management: Thisunit elaborates the development of Web applicationsdistributed in different service providers. It coversthe models of Web applications, structure of Webapplications, state management in Web applications.Database and caching support to Web applicationstate management are discussed in the next course,as a tradeoff between the materials in the sequenceof two courses. This unit also covers dynamicgraphics generation to leverage the presentation ofWeb applications at the programming level.

6. Dependability of Web Software: Dependability,including reliability and security, is a moreimportant issue in Web applications than that indesktop applications. In addition to present essentialissues in dependability design of Web applications,this unit also designs and implements the securitymechanisms that safeguard the Web applications.2.2 Sample ProjectsIn each of the main topics, a project is given. In this

section we present the project for two of the topics.In the multithreading part of the course, Intel’s

Thread Building Blocks (TBB) are discussed in classfor server application design. TBB provides astraightforward way of introducing performance

Page 4: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

threading, by turning synchronous calls intoasynchronous calls and converting large methods(threads) into smaller ones. To demonstrate theperformance impact, a program that validates theCollatz conjecture has been used to evaluate theperformance in a single core up through 32 cores usingIntel Manycore Testing Lab (MTL). Figure 3 showsthe measured speed-up and the usage efficiency for 4,8, 16, and 32 cores with respect to a single core.

Figure 3. Speedup and efficiency

In the final project, students will develop a workingWeb application and deploy the application into a Webserver for public access. Figure 4 shows a sampleproject, where students must develop both the client andthe provider. From the client side, an end user appliesfor an account by submitting necessary information.The provider issues a user ID if the application isapproved. Using the ID, the end user can createpassword and then access the system.

Figure 4. Web application project

The project involves GUI design at the presentationlayer, programming at business logic layer, and datamanipulation and storage at data management.

2.3 ACM CS Curriculum ComplianceAll ASU classes are designed based on ACM CS

curriculum. This course covers the ACM CS topicslisted in Tables 1, 2 and 3, which relate the topics to theLearning Objectives in Bloom's Taxonomy and theirlearning outcomes in programming, algorithm, andcross cutting and advanced topics, respectively.

Currently, many of the topics we teach in this courseare listed in cross the category of cutting and advancedtopics. We believe these topics will be considerstandard contents in near future.

In the Tables 1 through 3, the Bloom's Taxonomyabbreviations are: Knowledge (K), Comprehension (C),and Application (A).

Table 1. ACM CS Programming topicsTopics Bloom

#Learning Outcome

ClientServer

C Know notions of invoking andproviding services (e.g., RPC, RMI,web services) - understand these asconcurrent processes.

Task/threadspawn-ing

A Be able to write correct programswith threads, synchronize (fork-join,producer/consumer, etc.), usedynamic threads (in number andpossibly recursively) thread creation- (e.g. pthreads, CILK, JAVAthreads, etc.).

Libraries A Know one in detail, and know of theexistence of some other examplelibraries such as Pthreads, Pfunc,Intel's TBB (Thread building blocks),Microsoft's TPL (Task ParallelLibrary), etc.

Tasksandthreads

K Know the relationship betweennumber of tasks/threads/processesand processors/cores for performanceand impact of context switching onperformance

Synchro-nization

A Be able to write shared memoryprograms with critical regions,producer- consumer, and getspeedup; know the notions ofmechanism for concurrency(monitors, semaphores, … - [fromACM 2008])

Perfor-mancemetrics

C Know the basic definitions ofperformance metrics (speedup,efficiency, work, cost), Amdahl'slaw; know the notions of scalability

Table 2. Algorithms topicsTopics Bloom

#Learning Outcome

Speedup C Use parallelism either to solve sameproblem faster or to solve largerproblem in same time

Scala-bility inalgori-thms andarchitecttures

K Understand that more processorsdoes not always mean fasterexecution, e.g. inherent sequentialityof algorithmic structure, DAGrepresentation with a sequential spine

Dependencies

K, A Understand the impact ofdependencies and be able to definedata dependencies in Web cachingapplications

AddUserInfo

Checkcredit score

Createaccount

IssueUser ID

XML fileaccount.xml

Approval?

Strong?Match?Yes

Yes

addPwd

Credit scoreWeb service

Check existence

NoNo

No

Yes

User ID

PasswordRetypePassword

Subscribe

Name

SSN

Address

DoB

Create Password

You do not qualify

User ID

Password

Login

Client Provider

Page 5: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

Table 3. Cross cutting and advanced topicsTopics Bloom

#Learning Outcome

Cloud K Know that both are shared distributedresources - cloud is distinguished byon-demand, virtualized, service-oriented software and hardwareresources

P2P K Server and client roles of nodes withdistributed data

Securityin Distri-butedSystem

K Know that distributed systems aremore vulnerable to privacy andsecurity threats; distributed attacksmodes; inherent tension betweenprivacy and security

Webservices

A Be able to develop Web services andservice clients to invoke services

As the domain is new, no existing textbooksadequately cover these materials. There are books thatcover the concepts and principles well, but they do notdiscuss the development of operational software. Thereare books that focus on service-oriented softwaredevelopment. Those books are mostly platform-basedand do not associate the concepts and principles to thesoftware in development. We have developed atextbook to facilitate this course, which consists ofdetailed explanation of concepts, using examples toillustrate each key concept, and using case studies tolink multiple concepts together and to provide workingexamples. Part I of the text [8] is dedicated to teach thiscourse. Assignments and projects are given at the endof each chapter.

Students taking CSE445 are expected to have goodprogramming background in an object-orientedprogramming language such as C++, Java, or C#, andbasic software engineering background. Alldevelopment tasks are language-based either in Java orin C#, including multithreading software development,Web service development, and Web applicationdevelopment. In contrast, the next course, CSE446, willfocus more on the software composition and integrationusing existing services and components.

Evaluation plan: A number of assignments areassigned. In the multithreading programmingassignment, students will test their program in bothsingle core and multicore environments. Students willalso revise the program using Intel’s TBB library andmeasure the speed-up. In the service hostingassignment, students will explore parallelism on theserver side and determine the performanceimprovement based on the service model and themulticore efficiency.

IV. SOFTWARE INTEGRATION AND ENGINEERING

CSE446 (Software Integration and Engineering)course is built on the basic concepts and principlesdiscussed in CSE445, yet they do not rely on the detailof CSE445. If both courses are offered, CSE445 should

be offered before CSE446. However, with a review ofthe basic concepts and preparation in XML, this coursecan be taught independent of CSE445. CSE446emphasizes software composition and integration usingexisting services and components. The approach isbased on higher-level of data management andapplication building techniques. The objectives andoutcomes of the course are [19]:1. To understand software architecture and software

process, with outcomes: Students understand therequirement and specification process in problemsolving; Students understand software life cycle andprocess management; Students can identifyadvantages and disadvantages of softwarearchitectures and their trade-offs in differentapplications.

2. To understand and apply composition approach insoftware development: Students can apply softwarearchitecture to guide software development in theproblem solving process; Students understandinterface requirement of software services; Studentscan compose software based on interfaces ofservices and components; Students can developsoftware system using different compositionmethods and tools.

3. To understand and apply data and informationintegration in software development: Students cancompose software systems using different dataresources in different data formats; Students canintegrate application logic with different databases;Students can apply the entire software life cycle todevelop working software systems.CSE446 is designed to achieve the objectives and

outcomes of course. The course materials are organizedin seven units.1. Distributed Application Architecture2. Advanced Architecture-Driven Application

Development3. Enterprise Software Development and Integration4. Event-Driven Architecture and Applications5. Interfacing Service-Oriented Software with

Databases and Big Data analysis6. Ontology and Semantic Web7. Cloud Computing and Software as a Service

Cloud computing is a key unit in the course, as it isthe latest technology that all the major computingcompanies and governments are supporting andutilizing. In the U.S. Federal Cloud ComputingStrategy, published in 2011, Vivek Kundra, the U.S.Chief Information Officer, planned to spend $20billionof the entire government’s $80 billion IT budget incloud computing [22].

Another highlight of the course is of teaching theworkflow-based software development, which turns thedream of generating executable directly from the

Page 6: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

flowchart into reality. A keynote on this topic wasgiven in JICSIT 2011 / ITAIC 2011 [26].

Similar to CSE445, a project is given at the end ofeach unit. These projects include a survey on cloudcomputing, RESTful service development, Webapplications consuming RESTful services and othertypes of services, workflow-based integration, BPEL-based integration, database and ontology development,big data, and cloud computing.

No existing textbooks adequately cover thesematerials. We have covered these materials in the sametextbook used for CSE445 [8]. Part II of the textbook isdedicated to CSE446. Assignments and projects aregiven at the end of each chapter. Notice that the Part III,Appendices of the same text, is used for CSE101. Thus,the same text is used for multiple service-orientedcomputing courses that we discussed in the paper.Textbook is further discussed in Section VI.

V. ASU REPOSITORY OF SERVICES AND APPLICATIONS

The purpose of SOC is to improve the quality andproductivity of software and application development.It can succeed only if a large repository of services isavailable. Ideally, all services developed by allcorporations and by individuals will be open to thepublic in public directories and repositories. Thecurrent situations are: Private Services: Many corporations, for example,

IBM and SAP, keep their repositories private forinternal use only. These services will not beavailable for education purposes.

Paid Services: Many corporations, for example,Amazon Web Services, offer commercial servicesand subscription and payments are required. It isobviously correct and necessary for the applicationholders to pay for the services they use, in order toreflect the value of the services and the entireservice-oriented computing paradigm, as well asmaintain the service agreement between the serviceproviders and service clients. However, suchservices are not useful for education purposes, aswe cannot ask students to use these services tobuild their course projects, although many of ourstudents paid for the services in order to developbetter assignment projects.

Free public services: There are a number of servicedirectories where free public services are listed,including Xmethods.net, Webservicex.net, andremotemethods.com. Google and Microsoft offerfree services and APIs in a number of areas insearch and map services.Free public services are great resources for

education purposes, which are the main sources ourstudents use to develop their applications. There areseveral problems with the free public services.

The number of services and the range of servicesare limited.

The performance of some of the services is notadequate. The services are too slow to use (frequenttimeout when many students are accessing). Thesituation occurs particularly before an assignment isdue and a large number of students are accessingthe free services.

The availability, reliability, and maintainability arenot warranted. Services are often offline or beremoved without notice. Service interfaces andimplementations can be modified too.To reduce the possible problems, we have

developed a repository of our own at:http://venus.eas.asu.edu/WSRepository/This repository complements the free public

services in several ways. We develop servicesaccording the need of the course and its assignments.The source code of the services and applications areopen and explained as examples in the text [8]. Theservices and applications include simple functionservices that illustrate the development process, forexample, encryption and decryption services, accesscontrol services, random number guessing gameservices, random string (strong password) generationservices, dynamic image generation services, randomstring image (image verifier) service, caching services,shopping cart services, messaging buffer services, andmortgage application/approval services. The servicesare implemented in multiple formats, including ASP.Net services, Windows Communication Foundationservices, RESTful services, and Work Flow services.All the services are free and open to the public. Wemaintain the server to keep the high availability andreliability of the services.

We also developed a service directory that listsservices offered by other service directories andrepositories using a service crawler that discoversavailable services online. The service directory can beaccessed through a service engine at:http://venus.eas.asu.edu/sse/. We also offered aregistration page for anyone to list their services intothe service directory. The registration is at:

http://venus.eas.asu.edu/sse/ServiceRegister.aspx

VI. THE TEXTBOOK

As we discussed in the previous sections, atextbook is necessary to support these new courses andis developed that summarizes the main contents of thefour courses in SOA, SOC, SOD, and cloud computing[8]. Three editions have been published, and the fourthedition of the book to be printed in fall 2014 has thefollowing chapters, which are organized in three partsfor the three courses.

Page 7: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

Part I Distributed Service-Oriented SoftwareDevelopment and Web Data Management

Chapter 1 Introduction to Distributed Service-OrientedComputing

Chapter 2 Distributed Computing with MultithreadingChapter 3 Essentials in Service-Oriented Software

DevelopmentChapter 4 XML Data Representation and ProcessingChapter 5 Web Application and State ManagementChapter 6 Dependability of Service-Oriented Software

Part II Advanced Service-Oriented Computingand System Integration

Chapter 7 Advanced Services and Architecture-DrivenApplication Development

Chapter 8 Enterprise Software Development andIntegration

Chapter 9 Internet of Things and Robot as a ServiceChapter 10 Interfacing Service-Oriented Software with

DatabasesChapter 11 Big Data Systems and OntologyChapter 12 Service-Oriented Application ArchitectureChapter 13 A Mini Walkthrough of Service-Oriented

Software DevelopmentChapter 14 Cloud Computing and Software as a Service

Part I of the text is used for CSE445. Part II is usedfor CSE446. The book has been translated into Chineseand is used in multiple universities in China [8].

VII. ENROLLMENT AND EVALUATION

CSE445 was redesigned in Fall 2006 to reflect thenew development paradigm in distributed softwaredevelopment. CSE445 was named DistributedComputing with Java and CORBA. The course wasrenamed to Distributed Software Development and thecontents are changed to base on service-orientedcomputing, as discussed in the previous section.CSE445 is required for Software Engineeringconcentration, which is a part of CS program. Thereare about 50 students are enrolled in SE concentration.CS and CSE students can take CSE445 as a creditelective. CSE445 is also listed as CSE598 as anelective of graduate students. The enrollment numbersof CSE445/598 are given in Table 4.

Figure 5 plots the data, which visualize theenrollment in of CSE445 and CSE598. Both sectionsshow significant increases from 2006 to 2014. Thecombined enrollment has increased from 39 in Fall2006 to 134 in Fall 2013.

Course evaluation is done at the end of the courseby all students. Table 5 shows the average scores ofCSE445/598 (Distributed Software Development)since Fall 2006. The scores are out of 5.0, where 5.0 isvery good, 4.0 is good, 3.0 is fair, and 2.0 is poor.Students are and excited of learning the latestcomputing theories and practice before they enter thejob market.

Table 4. CSE445/598 enrollments since Fall 2006Year Semester 445

enrollment598

enrollmentEnrollment

total2006 Fall 25 14 392007 Spring 16 16 322007 Fall 24 21 452008 Spring 39 8 472008 Fall 35 23 582009 Spring 38 13 512009 Fall 33 10 452010 Spring 38 22 602010 Fall 42 34 762011 Spring 50 20 702011 Fall 30 52 822012 Spring 52 15 672012 Fall 42 35 772013 Spring 55 38 932013 Fall 44 90 1342014 Spring 50 62 112

Figure 5. CSE445/598 enrollment 2006 to 2014

Table 5. CSE445/598 student evaluation scoresYear Semester 445 score 598 score2006 Fall 3.69 4.372007 Spring 3.99 4.132007 Fall 4.03 4.332008 Fall 4.52 4.812009 Spring 4.22 4.372010 Spring 4.44 4.462010 Fall 4.56 4.632011 Spring 4.49 4.522011 Fall 4.44 4.532012 Spring 4.55 4.662012 Fall 4.36 4.62013 Spring 4.13 4.502013 Fall 4.17 4.63

Based on the feedbacks from students, a follow upclass of CSE445/598 class has been designed and pilot-taught in summer 2010 and summer 2011, with 20students enrolled in both sections. The new courseCSE446/598 has been approved as a required coursefor the Software Engineering Concentration fromSpring 2012, which has the same status asCSE445/598. As CSE445 is the prerequisite of

0

20

40

60

80

100

120

140

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

20

06

20

07

20

07

20

08

20

08

20

09

20

09

20

10

20

10

20

11

20

11

20

12

20

12

20

13

20

13

20

14

Combined

CSE598

CSE445

Page 8: Service-Oriented Computing and Software Integration in ...tcpp.cs.gsu.edu/curriculum/sites/default/files/Service-Oriented Computing and Software...Service-Oriented Computing and Software

CSE446, the enrollment number of CSE446/598 isslightly lower than CSE445/598

VIII. CONCLUSIONS

The paper presented three parallel and distributedcomputing courses in the CS curriculum at the ArizonaState University. CSE101 and CSE445 have beenincluded in the curriculum since 2006, while CSE446was added in 2011. For all the major concepts andtopics in the courses, working examples are given tomake sure that students not only understand theconcepts and principles, but also know how toimplement the concepts and principles in operationalsoftware. Application deployment into a Web server isemphasized in CSE445 and CSE446, as it is notcovered in other software development courses. Theincrease in the enrollment of the courses as well as thefeedbacks from students show that these coursesimproved our curriculum and are well received bystudents. Resources are created and made available forother universities to adopt.

REFERENCES

[1] Carlo Ghezzi, Mehdi Jazayeri, Programming LanguageConcepts, 3rd Edition, John Wiley & Sons, New York,1998.

[2] Yinong Chen, W.T. Tsai, Introduction to programminglanguages: Programming in C, C++, Scheme, Prolog,C#, and SOA, 3rd edition, Kendall Hunt Pub., 2012.

[3] D. Krafzig, K. Banke, and D. Slama, Enterprise SOA:Service-Oriented Architecture Best Practices, PrenticeHall, PTR, 2005

[4] Th. Erl, Service-Oriented Architecture: Concepts,Technology, and Design, Prentice Hall, August 2005.

[5] M. P. Singh, M. N. Huhns, Service-OrientedComputing, John Wiley & Sons, Atrium, 2005.

[6] Douglas C. Schmidt, Distributed Object Computingwith CORBA Middleware, http://www.cs.wustl.edu/~schmidt/corba.html

[7] Thuan L. Thai, Learning DCOM, O'Reilly Media, 1999.

[8] Yinong Chen and W.T. Tsai, Service-OrientedComputing and Web Software Integration, 3rd Edition,Kendall Hunt Publishing, 2011. A translated version ofthe book in Chinese (面向服务的计算和 Web 数据管理) isavailable at http://www.xduph.com/

[9] R. Paul, "DoD Towards Software Services,” Proc. ofIEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 05), February2005, pp. 3–6.

[10] Yinong Chen, et al. Introduction to Computer Science,Using Robotics Laboratories (计算机科学导论:基于机

器 人 的 实 践 方 法 ), China Machine Press, 2013,http://venus.eas.asu.edu/WSRepository/Robotics/

[11] Yinong Chen, “CSE101 Resources”, http://www.public.asu.edu/~ychen10/teaching/cse101/

[12] Yinong Chen, “CSE101 Laboratories”, January 2011,www.public.asu.edu/~ychen10/teaching/cse101/labs.pdf

[13] W. T. Tsai, Yinong Chen, Yann-Hang Lee, JamesCollofello, Gary Bitter, “Preparing high school teachersfor service-oriented computing”, the U.S. Department ofEducation, Fund for the Improvement of Post-Secondary Education (FIPSE), Project ID:P116B060433.

[14] W. T. Tsai, Yinong Chen, Calvin Cheng, and Xin Sun,Gary Bitter and Mary White, "An Introductory Courseon Service-Oriented Computing for High Schools",Journal of Information Technology Education, Volume7, pages 323-346.

[15] W. T. Tsai, X. Sun, Y. Chen, Q. Huang, G. Bitter, andM. White, “Teaching Service-Oriented Computing andSTEM Topics via Robotic Games,” Proc. of IEEEInternational Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing(ISORC), 2008, pp. 131–137.

[16] Yinong Chen, ASU Summer Robotics Camps,http://engineering.asu.edu/roboticscamp/

[17] ASU Web Service Repository, A Web programmingenvironment for robotics applications,http://venus.eas.asu.edu/WSRepository/eRobotic/

[18] ASU SCIDSE Syllabus, “CSE445/598 SoftwareIntegration and Engineering”, http://www.public.asu.edu/~ychen10/teaching/cse445/

[19] ASU SCIDSE Syllabus, “CSE446/598 SoftwareIntegration and Engineering”, http://www.public.asu.edu/~ychen10/teaching/cse446sie/

[20] Yinong Chen, Zhihui Du, and Marcos Garcia-Acosta,M., "Robot as a Service in Cloud Computing", InProceedings of the Fifth IEEE International Symposiumon Service Oriented System Engineering (SOSE),Nanjing, June 4-5, 2010, pp.151-158.

[21] Yinong Chen, H. Hu, "Internet of Intelligent Things andRobot as a Service", Simulation Modelling Practice andTheory, Volume 34, May 2013, Pages 159–171.

[22] Vivek Kundra, Federal Cloud Computing Strategy ,February 8, 2011, http://ctovision.com/wp-content/uploads/2011/02/Federal-Cloud-Computing-Strategy1.pdf

[23] Yinong Chen and W.T. Tsai, ASU Repository of WebServices and Web Applications, http://venus.eas.asu.edu/WSRepository/

[24] Intel - Arizona State University Collaboration in ParallelComputation, http://engineering.asu.edu/cidse/Curriculum

[25] Yinong Chen, Performance of Multithreading withMany-core Support, Intel Academic CommunityCourseware, http://software.intel.com/en-us/courseware/course/view.php?id=594

[26] Yinong Chen, A Dream of Software Engineering:Service Orientation and Cloud Computing, JICSIT 2011/ITAIC 2011 Keynote, http://www.public.asu.edu/~ychen10/activities/ jicsit11/ChenKeynote11.pdf

[27] W. T. Tsai, B. Xiao, Y. Chen, and R. A. Paul,“Consumer-Centric Service-Oriented Architecture: ANew Approach,” in Proceedings of SEUS-WCCIA’ 06.Washington, DC, USA, IEEE Computer Society, 2006,pp. 175–180.