PROJECT 2: SOA and Integrated Enterprise Architectures
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