This integration Monday session will be a show and tell style session where Mike will present a short topic covering rapid prototyping using Logic Apps. We all know that integration projects tend to be challenging, a lot of time is spent on analysis and trying to understand how things will work. In the real world we still find that no matter how much analysis we do we never really know the full story until we try to wedge the square peg into the round hole. In this session Mike will talk about how he used Logic apps to help him elaborate the requirements for a project using a prototype built with Logic Apps and how some of the learnings from this prototype will save plenty of time later in the project.
3. Acme University - Transforming the Student Experience
• Awesome Mobile App
• Awesome Student Portal
• Modern Back Office Processes
• Analysis and Intelligence
• Cloud & Integration Platform for Transforming the
business
• Ultra modern Virtual Learning Environment
Azure Service Bus Azure API Management
Logic Apps Functions
12. Project Aims
• Migrate Blackboard to a new version
• Synchronize key data required to make Blackboard Function
• Send assessment grades back to CRM and SITs
14. Problems
• A course is not a course
• SITs Course != Blackboard Course
• Acme Blackboard Courses = Academic Year + Module + Semester + Mode of Attendance??
• How do semesters map to terms
• Data in Blackboard is setup in a way there is lots of user manipulation later in the process
• There are different ways we can solve some data problems, which is best?
16. Upsert Functions
• API has Swagger =
• Swagger doesn’t describe behavior of system =
• Can we learn how to use API
Azure
Simplify Blackboard API with Functions?
Aims
17. Student Sync Prototype
Blackboard API
Trigger with Student Id
Student Sync Logic App
Upsert Functions
Get all data for student:
- Student
- Courses
- Departments
- Faculties
- Modules
- Courses
- Enrolments
- Assessments
Build that students data in Blackboard:
- Upsert user
- Upsert Modules
- Upsert Tutor as user
- Upsert Semester as course group
- Upsert Mode of Attendance as course group
- Add student and tutor as group members
- Etc……
21. Other Learnings
• Passwords needed to be supplied when
creating users
• Brought up ADFS discussion
• Academic Year id cant have “/” in it
• Id needs to be upper case (it will convert it)
• Not all objects have an external id
• Courses need to have a term
• Courses and terms don’t need to have dates
• Dates didn’t seem to behave as expected,
raised as a separate POC
• Modules != courses
• Courses in BB are a parent/child
• Parent = Module Code + Year
• Child = Module Code + Year + Semester + Mode of
Attendance
• Can we use course groups to simplify course
model?
23. API & Microservices
Blackboard API
Resource
group
Resource
group
Service Bus
Messaging
BizTalk Server
SITS
API Management
Resource
group Logic App
SITs to Blackboard
Blackboard needs
- Reference Data
- Users (Student/Staff)
- Modules
- Courses
24. API & Microservices
Blackboard API
Resource
group
Resource
group
Service Bus
Messaging
BizTalk Server
SITS Database
API Management
Resource
group
Blackboard DB replica
StuTalk
On Premise Microservices
Update Student Grades
[Optional] Enrichment step
26. Summary
• Could create data within Blackboard in < 0.5
days
• Was able to create Logic App + Functions very
quickly
• Able to allow the business user to “see what
it might look like”
Thoughts
• On Paper Analysis on its own can only get you
so far and you will miss lots of things
• Prototyping can test your assumptions and
help you learn a lot
• Manage expectations = Prototype is not the
end solution
Quick to prototype
Cheap
Throwaway
Serverless
Quick time to value
Makes analysis fun
Show what’s possible