Course website : https://blogs.cofc.edu/olmsteda
Email: Please use firstname.lastname@example.org with Subject = CSCI459
Office: Harbor Walk East 315
Office hours: Tuesday 1:00pm-3:30pm, Tuesday 5pm – 6pm (Please book at https://calendly.com/olmsteda)
Class place and time
Classroom: Harbor Walk East 301
TR 3:35- 4:50 PM
CSCI 459 Service-Oriented Computing – This course explores both Service-Oriented Architecture (SOA) and Business Process Management (BPM) enterprise software layers. Students will learn how business and IT concerns can be aligned. Students gain experience with service-oriented software development, process modeling and execution, and securing services. Prerequisites: CSCI 221 and (CSCI 315 or CSCI 230).
This lecture will give you a broad overview of the course, as well as the description of cloud computing, service-oriented computing, business process management and document data stores.
- Platform as a Service
This lecture covers the basic concepts of Platform as a Service (PAAS). Several examples will be demonstrated, and follow-up programming tasks will be assigned to allow the student to experience applied PAAS. In this module, students will be introduced to several PAAS offerings including force.com, Google App Engine, and Zoho Creator. The force.com APEX programming language for developing PAAS applications. Students will be assigned a creative project where they design and implement a user-interface in the force.com PAAS that allows users to maintain an object and perform all CRUD operations on the object.
- Infrastructure as a Service
This lecture covers the basic concepts of Infrastructure as a Service (IAAS). Several examples will be demonstrated, and follow-up configuration tasks will be assigned to allow the student to experience applied IAAS. In this module students will be introduced to several IAAS service offerings Amazon EC2, Microsoft Azure, digital ocean and Heroku. Students will be assigned the creation of an application in Heroku to manage an object and have the data asynchronously replicate with their first assignment solution.
- Software as a Service
This lecture covers the basic concepts of Software as a Service (SAAS). Several examples will be demonstrated, and follow-up usage tasks will be assigned to allow the student to experience applied SAAS. In this module, students will be introduced to Google G-Suite, Microsoft Office 365 and several Zoho solutions. Students will be assigned a simple task to create and manage an object like their first two assignments in a SAAS provider.
This lecture covers the basic concepts of Web-Services. Both SOAP and REST web services will be explained. Students will be given follow-up programming tasks to develop web services in the Cloud and to call out to other web-services. Students will develop server-side REST and SOAP web-services for their first assignment on the force.com platform. The students will demonstrate test cases for their web-services using SoapUI and postman test scripts.
- Authentication in the Cloud
This lecture covers the basic concepts of current process authentication in the cloud. The focus of the lecture will be on OAuth authentication workflows and the shortcomings. Students will be given follow-up web service testing assignments that utilize process authentication. The assignment for this module will require students to secure their earlier web-services for authentication. The earlier test scripts will need to be updated to include authentication in the workflows.
- Mobile applications and the Cloud
This lecture covers the basic concepts of how native mobile applications are developed to communicate with the cloud. The focus of the lecture will be on native mobile apps calling REST web services. Students will be given follow-up programming assignments that implement simple web-service calls from an Android emulator.
- Semi-Structured Data Formats
This lecture covers the basic concepts of semi-structured data formats. Both JSON and XML data services will be explained. Students will be given follow-up programming tasks to manipulate semi-structured data and execute queries through non-procedural query languages.
- Business Process Management
This lecture covers the basic concepts of business process management (BPM). The focus of the lecture will be modeling process and data flow in the Cloud and across domain boundaries. Students will be given follow-up modeling tasks using the Visual Paradigm BPMN modeling tool. Server-side workflows will be exampled in PAAS providers and contrasted to the BPEL programming language. Students will be assigned the development of a server-side workflow in the force.com business process engine.
- Document Oriented Data Stores
This lecture covers the basic concepts of document oriented NoSQL databases. The focus of the lecture will be the difference between relational databases and document oriented databases and the benefits and deficiencies of both architectures. Students will be introduced to several NoSQL databases including CouchDB, MongoDB and Google Big Table. Students will be given follow-up programming tasks to create and query documents in a document oriented database. The assignment for this module will be to create a CouchDB database to hold the object data used in previous assignments. Students will write map/reduce queries to retrieve individual records and aggregate details about the records.
|PAAS||Design and implement a user-interface in the force.com PAAS that allows users to maintain an object and perform all CRUD operations on the object. In the recorded lecture, an example will be developed to manage a person object.|
|IAAS||Install Heruko containers to host server-side code along with a module to host a Postgres SQL database. Develop a web interface to perform CRUD operations on the custom object of your choice. In the recorded lecture, an example will be developed to manage a person object. Install the Heroku/Salesforce integration container to asynchronously replicate the data between the Postgres database and the PASS data store.|
|SAAS||Sign-up for the Zoho CRM SAAS application. Modify or create a Zoho CRM module to hold the fields used for your object in previous assignments.|
|Web-Services||Develop REST and SOAP End-Points in force.com to allow CRUD operations on your custom object from the PAAS assignment. Develop PAAS code that calls the REST web-services to perform CRUD operations for your object on the SAAS system. Develop test SOAP call code in SoapUI testing engine. Develop test REST call code in the Postman testing engine. In the recorded lecture, examples of all these tasks will be demonstrated.|
|Authentication||Secure your REST and SOAP web-services using OAUTH. Modify your test scripts so they can function with the new authentication requirements in the workflows.|
|Mobile||Develop a mobile app to call Yahoo finance REST web services. The App should request a stock code and display the current price. The code can be developed in App Inventor or native IOS or Android Java code. In the recorded lecture, an example application will be developed.|
|Semi-Structured Data||XML documents will be provided, and students will need to provide XQueries that return the requested data|
|BPM||Students will design and implement a server-side workflow model to update data in the Zoho CRM SAAS from the force.com PAAS. The students should ensure changes made in their custom object are replicated between the two systems using a push of changes made in the PAAS via web-services and a pull of changes from the SAAS.|
|Document Data Store||Students should design a new CouchDB database that can hold their custom object used through the course. The students should provide a map/reduce queries to pull specific instances of the object along with at least two aggregate queries.|
Each student will develop a semester long project that integrates data across several domains in the cloud. Over the semester each student will have built similar pieces through the learning module assignments.
Each student should include
- Include a BPMN model for your project flow
- Include a web service in a PAAS architecture to maintain an object
- Include a mobile app that can modify the data and communicate to the web service.
- Communicate with a SAAS architecture to maintain the same data object
- Include an IAAS app to maintain the object (All CRUD operations)
- Include a mobile app to maintain the object (All CRUD operations)
- Include a document oriented database that has a copy of all the data and is kept up to date.
- Include a write-up that shows screenshots of your different parts of the application and document the choices you made in the architecture of the data replication.
I am assuming because you are in this class you want to learn about SOA programming. Therefore, it is my job to use the 40 hour long classes and 80 hours of outside work to get you there.
SOA In Practice, 2007 Retail Price $35.76.
100-92 (A); 91-89 (A-); 88-86 (B+); 85-82 (B); 81-79 (B-); 78-76 (C+); 75-72 (C); 71-69 (C-); 68-62 (D); else (F)
70% Programming Assignments & Problem Sets
Programming Assignments & Problem Sets
You will be assigned online assignments and SOA programming assignments. You will upload a screenshot of your completion of the online assignments to Oaks. You will upload your code to the Oaks dropbox.
Please read the College of Charlestons Student Code of Conduct. When you come to class please turn off your cell phones and all other electronic communication devices. I do encourage discussion so if you have a question do not hold back from interrupting me if you are afraid I have moved on. If it is something I will talk about a little later, I will note it on the board so we do not forget.
If you have a documented disability and are approved to receive accommodations through SNAP Services, please contact me.
Student Honor Code
I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before acting! I encourage collaboration, but you must document it. Thus, each student will submit their own homework and, when collaborating, provide a reference to those people and documents consulted.