PROJECT 2: SOA and Integrated Enterprise Architectures

profilegnsv.srinivas
Project_2___ISEM_540.pptx.pdf

Project 2: Integrated Enterprise Architectures

Team: Akzer, Rinku, Ronak Smart Center: Prevention and Research Center for Premature pregnancy

in Malawi

Team Work Distribution

• Akzer Yeshmukhanbetova → Worked on Deliverable A Part 2 –   Diagram for Simple Information Exchanges Using SOA; SOA and how it enables Web Services -> 33.3%

• Rinku Damodar Dhande → Worked on Deliverable A Part 1 - Design and Population of an Enterprise -> 33.3%

• Ronak Jain → Worked on Web Services, Rest, SOAP Request, Response,XML Deliverable A -> 33.3%

Design of an enterprise portal.

Deliverable A - Design and population of an enterprise portal

Technical Architecture

Services

Front-end

Portal

API (Windows, Mac)

Browser

Registration Sign-inHome

Cloud

Deliverable A - Diagram Simple Information Exchanges Using SOA

REST based Web services

• We have services in our portal that would help the researchers to do research by choosing various topics that they could use to do their research.

• This service would be a RES based web service and will be hosted by Amazon web services elastic cloud computing platform

• We would use these services in Phase 2 to add mobile/IOS/or application for android and iphones.

• We would also use cloud services to store huge amount of research data that would be available for the registered users to ref

Deliverable A - Diagram Simple Information Exchanges Using SOA

Web services that could be of value - Rinku

• We could use SOAP UI for our mobile application that would help to communicate with our customers.

• SOAP UI will help us to generate an easy to go mobile applications. • A soap node would transmit the message and a receiver node will

receive the message. • There would also be a SOAP Path that would help to transmit the

message to the destination node.

Deliverable A - Diagram Simple Information Exchanges Using SOA

Potential Web Services & Mobile Apps that could be used - Akzer AWS Services:

•Amazon S3

•Amazon DynamoDB

•Amazon Cognito

•Amazon Pinpoint

Medical apps for health tracking/diagnosis (integration with our center)

•AHRQ ePSS - Screening and prevention tool

•Diagnosaurus - Differential diagnosis

•Epocrates - Drug and medical reference

Deliverable A Part 1 – Web Services and Mobile Apps that could be of value

• The information collected through the devices from the patients will be stored centrally in the relational database through the web services.

• Based on the data monitored an ambulance will automatically get scheduled for the patients depending on the preset tolerance level.

• The device implanted in the patients are configured to locate the patient and have in built process to identify the nearest healthcare facility.

Emergency Transportation Service - Ronak

Web service helps the system to communicate each other. Interaction is based on XML.

As per the security concerns, web GUI cannot make direct calls to the database and it needs proper model which will use the object repository.

This is a typical MVC web app but there are 2 individual model classes for service and web GUI is inheriting from the main one.

Web service could be used as an interface for the application and subscribes to its WSDL to communicate and share the data.

WSDL is essentially an XML document that explains each service method name, return type, parameters and call conventions (GET,PUT, POST, DELETE)

Web Service Data Exchange

People Applications Partners

Shared Service Access

Service Provider Access Human Access Applications Data Sources Partners

People Applications PartnersData Sources

Presentation Services

Business Services

HCS PPRS PP&DPS

Data Services

Patient Tracker Data Hospital/Research Center

Infrastru cture Se rvices

Service Access

Shared Services

Service Provider Access

Service Provider

Service Consumer

Business event initiators

HCS – Health Care Services PPRS – Premature Pregnancy Research Services PP&DPS - Premature Pregnancy and Death Prevention Services

Deliverable A - Diagram Simple Information Exchanges Using SOA

Service-Oriented Architecture • A service provider is the primary engine underlying  

the Web services. It describes its Web services using WSDL and actually provides or implements the business functionality of various types. The WSDL definition is published to a service broker.

• A service broker describes the service's location and   contract. It is responsible for ensuring the service information is available to any potential service requestor, consumer, or called Web service client.

• A service consumer or Web service client issues one or   more queries to the service broker to locate a service and determine how to communicate with that service.

• WSDL and SOAP are the communication vehicles facilitating the services.

• Part of the WSDL provided by a service provider is passed to the service consumer in specifying what the requests and responses are for the service provider.

• The service consumer sends SOAP messages as service requests to the service provider. The service provider then provides the expected SOAP responses back to the service consumer to complete the requests.

Deliverable A - Diagram Simple Information Exchanges Using SOA

Service-oriented architecture (SOA) is used in enabling Web services 

• SOA Provider - an enhanced service provider particularly in supporting additional interface types for service enablement.

• SOA Provider references integration services and data from Integration Repository in processing inbound SOAP request messages that invoke Web services and sends the SOAP response out.

• The Web service invocation framework (WSIF) serves as a service consumer to issue a request through the invocation of a Web services from the application suite.

Source: Oracle SOA. Understanding Service Enablement

Deliverable A - Diagram Simple Information Exchanges Using SOA

Health Tracking service will have the following RESTful endpoints:

Endpoints for basic health(user) information create/new operation: POST /user write/modify operation: PUT /user/:id Read Operation: GET /user/:id Delete Operation: DELETE /user/:id Endpoints for health(user) tracking service information POST /user/:id/info PUT /user/:id/info GET /user/:id/info POST /user {"last_name": "Atkins", "first_name": "John", "address": "123 Horizon Blvd, New Providence, CA ", ”citizenship”: ”American”, "heartbeat_rate": "normal", "userid": "AB9810C", "date_of_birth": "Dec 19th 1990", "health_indicator": "green", "blood_pressure": "normal", "baby_health_status": "normal", “oxygen_level”: “normal”, “Date”: "Feb 2nd 2018", "Time": "05:24 PM EST"} Will return { "id": AB9810C } We will use this default id for future communication about this user

Health Tracking Service - Ronak

SOAP Request:

POST /InStock HTTP/1.1

Host: www.malawihealthcare.com

Content-Type: application/soap+xml; charset=utf-8

Content-Length: max

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap- encoding">

<soap:Body xmlns:m="http:// www.malawihealthcare.com/serviceInfo">

<m:GetServicesInfo>

<m:userid>AB9810C </m:userid>

</m:GetServicesInfo>

</soap:Body>

</soap:Envelope>

SOAP Call to Health Data Repository SOAP Response: POST /InStock HTTP/1.1 Host: www.malawihealthcare.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: max <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap- encoding"> <soap:Body xmlns:m="http:// www.malawihealthcare.com/servicesInfo"> <m:GetServicesResponse> <m: LstName>Atkins</m: LastName> <m: FirstName>John</m: FirstName> <m: address>123 Horizon Blvd, New Providence, CA</m: address> <m: Citizenship>American</m: Citizenship> <m: DOB>Dec 19th 1990</m: DOB> <m: Heartbeat_Rate>Normal</m: Heartbeat_Rate > <m: baby_health_status> Normal</m: baby_health_status> <m: Date>Feb 2nd 2018</m: Date> <m: Time>05:24 PM EST</m: Time> <m: userId>AB9810C</m: userId> </m:GetServicesResponse> </soap:Body> </soap:Envelope>

<?xml version="1.0" encoding="UTF-8"?>

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.malawihealthcare.com/soapworx/directory/TransportInfo.wsdl" xmlns:xsd="http://www.w3.

org/2001/XMLSchema" name="GetDirectory" targetNamespace="http://www.malawihealthcare.com/soapworx/directory/TransportInfo.wsdl">

<message name=”TransportInput">

<part name=”TransportInfo" type="xsd:string" />

</message>

<message name="DirectoryResponse">

<part name="ContactInfo" type="xsd:string" />

</message>

<portType name="DirectoryPortType">

<operation name="GetDirectory">

<input message="tns: DirectoryInput " />

<output message="tns: DirectoryResponse " />

</operation>

</portType>

<binding name="DirectoryBinding" type="tns:DirectoryPortType">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

<operation name="GetContactInfo">

<soap:operation soapAction="getContactInfo" />

<input>

WSDL for Malawi Healthcare Transportation Service Delivery

<soap:body use="encoded" namespace="http://www.vistmaldives.com/soapworx/examples"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</input>

<output>

<soap:body use="encoded" namespace="http:// www.vistmaldives.com /soapworx/examples"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</output>

</operation>

</binding>

<service name="DirectoryService">

<documentation>Returns Contact Details and address for a given Contact Number in transport directory</documentation>

<port name="DirectoryPort" binding="tns:DirectoryBinding">

<soap:address location="http://localhost:8090/directory/Directory" />

</port>

</service>

</definitions>

<healthcareInformation>

<mother>

<last_name>Atkins</last_name>

<first_name>John</first_name>

<address>ABCD Dr, Springfield, NJ 08172</address>

<age>31</age>

<userId>ABC901D</userId>

<health>

<heartbeat>75</heartbeat>

<oxygen_level>normal</oxygen_level>

<disease>arthritis</disease>

<medicines>

<antibiotics>azithromycin<antibiotics>

</medicine>

<baby_health_indicator>normal</baby_health_indicator>

</health>

<mother>

</healthcareInformation>

Sample XML how informaiton is exchanged

References • Understanding Service Enablement. (n.d.). Retrieved September 23,

2018, from http://docs.huihoo.com/oracle/e-business-suite/12/doc.121/e120 64/T291171T509748.htm#d0e662

• 7 AWS Services to Consider for Your Next Mobile App Development Project. (n.d.). Retrieved September 29, from https://www.cabotsolutions.com/7-aws-services-to-consider-for-your -next-mobile-app-development-project

• •Ventola, C. L. (2014, May). Retrieved September 29, 2018, from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4029126/

Thank you

  • Slide 1
  • Team Work Distribution
  • Design of an enterprise portal.
  • Technical Architecture
  • REST based Web services
  • Web services that could be of value - Rinku
  • Potential Web Services & Mobile Apps that could be used - Akzer
  • Emergency Transportation Service - Ronak
  • Web Service Data Exchange
  • Slide 10
  • Service-Oriented Architecture
  • Slide 12
  • Health Tracking Service - Ronak
  • SOAP Call to Health Data Repository
  • WSDL for Malawi Healthcare Transportation Service Delivery
  • Slide 16
  • Sample XML how informaiton is exchanged
  • References
  • Slide 19