SlideShare une entreprise Scribd logo
1  sur  12
Osama Mustafa
pg. 1
Case Study for
Software Architect
Contents
Abstract:.................................................................................................................................................2
Introduction: ..........................................................................................................................................3
Overview: ...........................................................................................................................................3
Why we use application integration:.....................................................................................................3
Osama Mustafa
pg. 2
Implementation of application integration: ..........................................................................................4
APIs and Web Applications:...................................................................................................................4
An API or the System that Supplies it?...............................................................................................5
Useful components in this diagram:..................................................................................................9
Limitation:..............................................................................................................................................9
Technical Limitations: ........................................................................................................................9
Legal Limitations: ...............................................................................................................................9
More solutions can be implemented: -..................................................................................................9
1. Full inclusion.............................................................................................................................10
2. No inclusion..............................................................................................................................10
3. Micro services-based................................................................................................................11
criteria for to determine which design to choose ...............................................................................12
Considerations .....................................................................................................................................12
Abstract:
We have two separate applications that we would like to integrate together. One is a WYSIWYG
application for generating static websites. The other is an admin application for managing an online
shopping site. We would like to be able to use the features of the Website Builder to design pages
in the Web shop. In addition, we would also like to be able to manage product details (name, price,
images, etc.) while updating Web shop pages in the Website Builder.
Osama Mustafa
pg. 3
Introduction:
Overview:
The ecosystem of e-commerce and business applications has evolved: highly specialized vendors
now offer every kind of specialty tool, plug-in feature, and business operations application
imaginable and still new applications are appearing every day. Incongruous operating systems and
distributed applications installed on diverse hardware, with hundreds of different types of
messages being sent and received simultaneously from the web and inside the organization require
businesses to devote special attention to application integration possibilities.
There is hardly a single web development project today that doesn’t involve some kind of 3rd party
vendor integration, be it for adding the latest must-have consumer features, ensuring you have the
appropriate site analytics and marketing metrics or integrating your business process applications
into your website.
As much as we would like to complete all our work in a single application, doing so is nearly
impossible. There are various developers and entrepreneurs creating applications that specialize in
assisting with specific needs and roles within companies. So, rather than relying on a single
application, we inevitably end up relying on many. While this helps us complete multiple tasks,
managing multiple applications and the data they store can be difficult.
Application integration helps maintain, manage, and keep all your applications up to date while
alleviating data duplication and redundancy. By creating an application integration network that
allows applications to communicate with each other, business and work processes can be done
more effectively and efficiently. Enterprise application integration (EAI) is used to describe
application integration at the enterprise level where multiple applications are interconnected.
Whether on the enterprise level or not, application integration can mitigate challenges related to
data silos.
Why we use application integration:
The need for application integration stems from the need to move data between applications. This
includes transferring data from one application to another in a scheduled, ongoing way or moving data
once from a legacy system into something new. Or, in short, application integration is used to make life
easier. With application integration, you can enter data once and connect it to multiple applications
instead of entering the same data as many times as you have applications. When you add new data into
an application that has been integrated with other applications, the data will be automatically
distributed throughout the connected applications. This reduces human error, the need for manual
Osama Mustafa
pg. 4
intervention, and overall ensures consistency across your platforms. By having a comprehensive system
that forms a bridge between heterogeneous applications, you won’t have to be concerned about
whether your applications were originally intended to communicate with each other or not. This gives
you the freedom and flexibility to choose applications of your choice, not just apps that are within a
collection of technologies or from the same vendor.
Implementation of application integration:
The basic of APIs: Application integration is typically done with the use of APIs. An API (application
programming interface) is a package of functions or rules that allow a user to reference and interact
with parts of an application for their own purposes. This allows for control and flexibility for the end user
while allowing the original creators to maintain their application without interference. Within an API are
the protocols that allow for application integration to take place. While APIs these days are most often
referencing web APIs, APIs have long been used to integrate on premise software systems. They have
played a significant role in SOA (service-oriented architecture), which has mainly taken place on
premise. This means application integration was only really able to take place internally. With the web
and the development of cloud applications, application integration is more commonly an external
process. You do not necessarily need to have an application stored on your computer for you to be able
to access the API of an application.
APIs and Web Applications:
APIs for web applications have become very popular and essential for various tasks due to the increase
in mobile applications and cloud-based software. Web APIs are distinct for the following reasons:
• They are exposed over the web using an HTTP or HTTPS protocol
• Public web APIs are available over the internet, typically with supporting documentation
• They are most often built using JSON or XML
While web APIs do share consistencies, most web APIs will be unique in the way that you can use them.
These differences are dependent on how the developers of the application decided to create the
corresponding API. Therefore, the specific information that is needed to fully make use of a specific API
relies heavily on the documentation that is provided.
Here is the work flow diagram of the whole working system.
Osama Mustafa
pg. 5
Figure 0.1 the work flow diagram
As you can see how the user interact with the Application/System and how the Application and
integrated API working combined and give the user a reliable system. And the user can access all the
feature in single Application looks like everything is running on a one place.
Here is a diagram which shows how the Application and API connect and communicate with each other
by using API calls and pre-defined methods.
Figure 0.2 how the Application and API connect
An API or the System that Supplies it?
Whatever symbol we choose, what we've done is to show the *system* rather than the actual API. The
API is a definition of a service provided by the system in question. How should we provide more details
about the API?
There are a number of ways we could do this but my preference is to give details of the API on the
connector (line connecting two elements/boxes). In C4 the guidelines for a container diagram includes
Osama Mustafa
pg. 6
listing protocol information on the connector and an API can be viewed as the layer above the protocol.
For example:
Figure 0.1 listing protocol information
Many API providers supply multiple services/APIs (I'm not referring to different operations within an API
but multiple sets of operations in different APIs, which may even use different underlying protocols.)
• Allow a bulk, batch download of static data (such as details of companies listed on a stock
market) via xml over HTTP.
• Supply real time, low latency updates of market prices via bespoke messages over UDP.
Two of the services use the same protocol (xml over HTTP) but have very different content and use. One
of the APIs is used to constantly supply information after user subscription (market data) and the last
service involves the user supplying all the information with no acknowledgment (although it should
reconcile at EOD).
Osama Mustafa
pg. 7
There are multiple ways of showing this. We could:
• Have a single service element, list the APIs on it and have all components linking to it.
• Show each service/API as a separate box and connect the components that use the individual
service to the relevant box.
• Show a single service element with multiple connections. Each connection is labeled and
represents an API.
• Use a Port and Connector style notation to represent each API from the service provider.
Provide a key for the ports.
• Use a UML style 'cup and ball' notation to define interfaces and their usage.
Some of these questions may come to your mind:
• How are my services currently organized and exposed internally/externally?
• How does the partner want to integrate with my system, e.g., internal networks, protocols, etc.?
• How do I secure, track and manage the integration of my exposed services?
The following integration diagram below illustrates (at a high level) the existing communication
protocols between the components. You’ll also see how some of the services are being exposed to third-
party developers via the External API Gateway at the logic layer.
Osama Mustafa
pg. 8
Figure 0.2 existing communication protocols between the components
From the diagram above, you’ll realize that the system was designed to be API-driven, which makes it
easy for integration. Almost all the services are exposed via web services, including the data storage
components.
The next step is to check with the partner on the list of services that they require, mode of integration,
e.g. internal or external, and cross-reference the requirements with the services exposed via the API
catalogue. There are also follow-up action items, i.e. working with the system engineers to decide on the
security and monitoring of exposed services.
Sometimes, there may be requirement gaps such as partner wants to integrate externally, but your
services are only exposed internally, or certain data attributes are missing. In such cases, efforts would
have to be factored in to cater to the requirements. The integration diagram has to highlight details, i.e.
internal services/APIs, link to API catalogue, etc. to identify such gaps quickly.
Osama Mustafa
pg. 9
Useful components in this diagram:
Grouped components into layers and bounded contexts — an indication of internal/external API
gateways and services
Annotations with additional information — reference links to API catalogues where detailed service data
attributes can be obtained to assess gaps
Application details and context — services are named appropriately to allow quick assessment of
requirements v.s. actual.
Limitation:
Technical Limitations:
Many API providers have technical limitations in place. I list a few here:
• Rate Limits: Many API providers have limits on the number of queries you can execute per day.
You would need to make sure your application doesn’t need to exceed that limit, and find
workarounds for that.
• Request/Response Formats: Many API providers require you to create your requests and receive
your responses in a specific format. Make sure that your application can support such requests
without a major overhaul. This is especially true when integrating APIs with existing systems.
• Request Restrictions: Some API providers only allow you to execute requests from specific
domains/IPs. Your integration plan needs to address those issues if they exist.
Legal Limitations:
In addition to the technical limitations mentioned above, some API providers have legal
limitations in place in order to make sure that data retrieved via the API is properly used. For
example, LinkedIn allows you to fetch a user’s connection information, but it doesn’t allow you
to share that data with third parties. Although this is technically possible, it’s legally impossible
to do so, and implementing such a solution will only cause your API access to be cut.
Knowing those legal limitations in advance will help you properly plan your integration and
address any issues earlier in the process.
More solutions can be implemented: -
Osama Mustafa
pg. 10
1. Full inclusion
of web builder with admin app meaning web builder is basically in the administration app. In this case
builder app will automatically have access to all data like product process, photos, etc, which will
eliminate any data flow, hence remove communication delays. However, this might also lead to slow
app response or even legging at times because its heavy since two apps inclusively combined.
Figure 0.1 ARCHITECTURAL DESIGN FOR FULL INCLUSION DESIGN
2. No inclusion
of web builder with admin app meaning instead of combining both apps completely one can integrate
them on module bases. New web builder functionality can be developed separately without have any
connection with admin application. It will be faster in the sense that it will be lighter. However, it will
have quite a lot flow of data between admin app and builder module, which might add some
communication delays.
Osama Mustafa
pg. 11
Figure 0.2 ARCHITECTURAL DESIGN FOR NO INCLUSION DESIGN
3. Micro services-based
integrations of admin app and web builder application. Currently admin app has monolithic
backend which has to be converted to micro services and then implement builder as a service a
well. It will counter all drawbacks of above designs like slow app response and communication
delays. This the best solution with robust solution and opportunity to integrate more features in
future. Please visit https://www.ibm.com/cloud/learn/microservices to learn more about micro
services.
Figure 0.3 ARCHITECTURAL DESIGN FOR MICRO SERVICES-BASED DESIGN
Osama Mustafa
pg. 12
criteria for to determine which design to choose
Criteria Full Inclusion Design No Inclusion Design Micro service Design
Heavy app Yes No NO
Communication delays No Yes NO
Expensive to Implement No No Yes
Is robust No No Yes
Benefits Future
Integration
No No Yes
Require New Technology No No Yes
Considerations
First and foremost, front end users’ experience should be the priority. As it is quite easy for developers
to not consider how their actions might affect user experience when working on back-end project like
this. Depending on current architectural design of the shopping site it will differ how much refactoring is
required to make it changeable and controllable by a website builder. For example, if it does not follow
basic component driven design principles then it can lead to extra work as website itself has to be
refactored significantly before connecting it to a website builder. This refactoring of front end could
result in some changes to UI which might feel unfamiliar to regular users or even lost functionality in
worst case scenario.
Another important aspect to consider would be how admin application will integrate with web builder.
For example, if web builder and current administrational functionalities are implemented on same page
or as described in document as one-page application, then it might cause the application to slow down
or even leggy at points. A robust design will avoid these issues and also give opportunity to integrate
additional functionalities with ease in future.
Last but not least, a separate local environment or testing server should be used for this whole process.
It happens quite often then due to some error or mistake the whole website goes down and obviously
that’s not great for a live website. Furthermore, for extra security the website should have a backup
before start implementing anything.

Contenu connexe

Tendances

Mule api and service management
Mule api and service managementMule api and service management
Mule api and service managementD.Rajesh Kumar
 
MULE-Api led connectivity
MULE-Api led connectivityMULE-Api led connectivity
MULE-Api led connectivityD.Rajesh Kumar
 
Token Management using Stormpath inside Mule
Token Management using Stormpath inside MuleToken Management using Stormpath inside Mule
Token Management using Stormpath inside MuleRaviShankar Mishra
 
Anypoint platform highlights
Anypoint platform highlightsAnypoint platform highlights
Anypoint platform highlightshimajareddys
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841ppts123456
 
Mule google connectors
Mule google connectorsMule google connectors
Mule google connectorsAnand kalla
 
Mule human resources connectors
Mule  human resources connectorsMule  human resources connectors
Mule human resources connectorsD.Rajesh Kumar
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce IntegrationJoshua Hoskins
 
Mule google connectors
Mule  google connectorsMule  google connectors
Mule google connectorsD.Rajesh Kumar
 
Mule marketing connectors
Mule  marketing connectorsMule  marketing connectors
Mule marketing connectorsD.Rajesh Kumar
 

Tendances (15)

Mule architecture
Mule architectureMule architecture
Mule architecture
 
Mule api and service management
Mule api and service managementMule api and service management
Mule api and service management
 
Api Layer
Api LayerApi Layer
Api Layer
 
MULE-Api led connectivity
MULE-Api led connectivityMULE-Api led connectivity
MULE-Api led connectivity
 
Anypoint b2 b
Anypoint b2 bAnypoint b2 b
Anypoint b2 b
 
Token Management using Stormpath inside Mule
Token Management using Stormpath inside MuleToken Management using Stormpath inside Mule
Token Management using Stormpath inside Mule
 
Anypoint platform highlights
Anypoint platform highlightsAnypoint platform highlights
Anypoint platform highlights
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841
 
Mule oracle connectors
Mule oracle connectorsMule oracle connectors
Mule oracle connectors
 
Manage and consume the api
Manage and consume the apiManage and consume the api
Manage and consume the api
 
Mule google connectors
Mule google connectorsMule google connectors
Mule google connectors
 
Mule human resources connectors
Mule  human resources connectorsMule  human resources connectors
Mule human resources connectors
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
 
Mule google connectors
Mule  google connectorsMule  google connectors
Mule google connectors
 
Mule marketing connectors
Mule  marketing connectorsMule  marketing connectors
Mule marketing connectors
 

Similaire à Case study for software architect

Explaining API Integration: How Does API Integration work?
Explaining API Integration: How Does API Integration work?Explaining API Integration: How Does API Integration work?
Explaining API Integration: How Does API Integration work?DavidAltmen
 
Implementation and Evaluation of a Component-Based framework for Internet App...
Implementation and Evaluation of a Component-Based framework for Internet App...Implementation and Evaluation of a Component-Based framework for Internet App...
Implementation and Evaluation of a Component-Based framework for Internet App...ITIIIndustries
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagementpramodkumards
 
Understanding the basic need of Service Oriented Architecture and getting sta...
Understanding the basic need of Service Oriented Architecture and getting sta...Understanding the basic need of Service Oriented Architecture and getting sta...
Understanding the basic need of Service Oriented Architecture and getting sta...Shantanu Thakre
 
10 Step Guide to API Integrations
10 Step Guide to API Integrations10 Step Guide to API Integrations
10 Step Guide to API IntegrationsCloud Elements
 
Applicaton Development using RESTful APIs
Applicaton Development using RESTful APIsApplicaton Development using RESTful APIs
Applicaton Development using RESTful APIsSourav Maji
 
Enterprise API deployment best practice
Enterprise API deployment best practiceEnterprise API deployment best practice
Enterprise API deployment best practiceSanjay Roy
 
Cloud Elements | State of API Integration Report 2018
Cloud Elements | State of API Integration Report 2018Cloud Elements | State of API Integration Report 2018
Cloud Elements | State of API Integration Report 2018Cloud Elements
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentDevenPhillips
 
Software application architecture
Software application architectureSoftware application architecture
Software application architectureanwitat
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application VulnerabilitiesPamela Wright
 
Practical guide to building public APIs
Practical guide to building public APIsPractical guide to building public APIs
Practical guide to building public APIsReda Hmeid MBCS
 
APIs +Micro services technology for Computing
APIs +Micro services technology for ComputingAPIs +Micro services technology for Computing
APIs +Micro services technology for Computingwismoyo92
 
Internet applications unit1
Internet applications unit1Internet applications unit1
Internet applications unit1MSc CST
 

Similaire à Case study for software architect (20)

How to Spot a Great API
How to Spot a Great APIHow to Spot a Great API
How to Spot a Great API
 
Third party api integration
Third party api integrationThird party api integration
Third party api integration
 
Explaining API Integration: How Does API Integration work?
Explaining API Integration: How Does API Integration work?Explaining API Integration: How Does API Integration work?
Explaining API Integration: How Does API Integration work?
 
Implementation and Evaluation of a Component-Based framework for Internet App...
Implementation and Evaluation of a Component-Based framework for Internet App...Implementation and Evaluation of a Component-Based framework for Internet App...
Implementation and Evaluation of a Component-Based framework for Internet App...
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagement
 
APIs and Microservices - What Are They?
APIs and Microservices - What Are They?APIs and Microservices - What Are They?
APIs and Microservices - What Are They?
 
API.docx
API.docxAPI.docx
API.docx
 
Understanding the basic need of Service Oriented Architecture and getting sta...
Understanding the basic need of Service Oriented Architecture and getting sta...Understanding the basic need of Service Oriented Architecture and getting sta...
Understanding the basic need of Service Oriented Architecture and getting sta...
 
10 Step Guide to API Integrations
10 Step Guide to API Integrations10 Step Guide to API Integrations
10 Step Guide to API Integrations
 
Applicaton Development using RESTful APIs
Applicaton Development using RESTful APIsApplicaton Development using RESTful APIs
Applicaton Development using RESTful APIs
 
Enterprise API deployment best practice
Enterprise API deployment best practiceEnterprise API deployment best practice
Enterprise API deployment best practice
 
Cloud Elements | State of API Integration Report 2018
Cloud Elements | State of API Integration Report 2018Cloud Elements | State of API Integration Report 2018
Cloud Elements | State of API Integration Report 2018
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
 
Software application architecture
Software application architectureSoftware application architecture
Software application architecture
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application Vulnerabilities
 
Practical guide to building public APIs
Practical guide to building public APIsPractical guide to building public APIs
Practical guide to building public APIs
 
APIs +Micro services technology for Computing
APIs +Micro services technology for ComputingAPIs +Micro services technology for Computing
APIs +Micro services technology for Computing
 
TEC-Roundtable-API
TEC-Roundtable-APITEC-Roundtable-API
TEC-Roundtable-API
 
Internet applications unit1
Internet applications unit1Internet applications unit1
Internet applications unit1
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 

Plus de Osama Mustafa

Does cloud mean the end of the dba
Does cloud mean the end of the dbaDoes cloud mean the end of the dba
Does cloud mean the end of the dbaOsama Mustafa
 
Using git hub for your code
Using git hub for your codeUsing git hub for your code
Using git hub for your codeOsama Mustafa
 
Java business service
Java business serviceJava business service
Java business serviceOsama Mustafa
 
Steps creating data_integration_services
Steps creating data_integration_servicesSteps creating data_integration_services
Steps creating data_integration_servicesOsama Mustafa
 
Build, Deploy and Run Node Js Application on Azure using Docker
Build, Deploy and Run Node Js Application on Azure using DockerBuild, Deploy and Run Node Js Application on Azure using Docker
Build, Deploy and Run Node Js Application on Azure using DockerOsama Mustafa
 
Oracle api gateway installation as cluster and single node
Oracle api gateway installation as cluster and single nodeOracle api gateway installation as cluster and single node
Oracle api gateway installation as cluster and single nodeOsama Mustafa
 
Helping implementer dealing with famous siebel based system messages and er...
Helping implementer dealing with famous siebel   based system messages and er...Helping implementer dealing with famous siebel   based system messages and er...
Helping implementer dealing with famous siebel based system messages and er...Osama Mustafa
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dbaOsama Mustafa
 
Oracle obia 11.1.1.10.1 installation
Oracle obia 11.1.1.10.1 installation Oracle obia 11.1.1.10.1 installation
Oracle obia 11.1.1.10.1 installation Osama Mustafa
 
Oracle Enterprise manager 13c Installation
Oracle Enterprise manager 13c InstallationOracle Enterprise manager 13c Installation
Oracle Enterprise manager 13c InstallationOsama Mustafa
 
Erp installation r12.2
Erp installation r12.2Erp installation r12.2
Erp installation r12.2Osama Mustafa
 
Upgrade EBS DB from 11g to 12c.
Upgrade EBS DB from 11g to 12c.Upgrade EBS DB from 11g to 12c.
Upgrade EBS DB from 11g to 12c.Osama Mustafa
 
Eouc 12 on 12c osama mustafa
Eouc 12 on 12c osama mustafaEouc 12 on 12c osama mustafa
Eouc 12 on 12c osama mustafaOsama Mustafa
 
Install oracle siebel on windows 2008 r2
Install oracle siebel on windows 2008 r2Install oracle siebel on windows 2008 r2
Install oracle siebel on windows 2008 r2Osama Mustafa
 
Enable oracle database vault
Enable oracle database vaultEnable oracle database vault
Enable oracle database vaultOsama Mustafa
 

Plus de Osama Mustafa (20)

DevOps for database
DevOps for databaseDevOps for database
DevOps for database
 
Does cloud mean the end of the dba
Does cloud mean the end of the dbaDoes cloud mean the end of the dba
Does cloud mean the end of the dba
 
Using git hub for your code
Using git hub for your codeUsing git hub for your code
Using git hub for your code
 
DevOps Project
DevOps Project DevOps Project
DevOps Project
 
Java business service
Java business serviceJava business service
Java business service
 
Steps creating data_integration_services
Steps creating data_integration_servicesSteps creating data_integration_services
Steps creating data_integration_services
 
Build, Deploy and Run Node Js Application on Azure using Docker
Build, Deploy and Run Node Js Application on Azure using DockerBuild, Deploy and Run Node Js Application on Azure using Docker
Build, Deploy and Run Node Js Application on Azure using Docker
 
Oracle api gateway installation as cluster and single node
Oracle api gateway installation as cluster and single nodeOracle api gateway installation as cluster and single node
Oracle api gateway installation as cluster and single node
 
Helping implementer dealing with famous siebel based system messages and er...
Helping implementer dealing with famous siebel   based system messages and er...Helping implementer dealing with famous siebel   based system messages and er...
Helping implementer dealing with famous siebel based system messages and er...
 
Weblogic and docker
Weblogic and dockerWeblogic and docker
Weblogic and docker
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dba
 
Ebs clone r12.2.4
Ebs clone r12.2.4Ebs clone r12.2.4
Ebs clone r12.2.4
 
Oracle obia 11.1.1.10.1 installation
Oracle obia 11.1.1.10.1 installation Oracle obia 11.1.1.10.1 installation
Oracle obia 11.1.1.10.1 installation
 
Oracle Enterprise manager 13c Installation
Oracle Enterprise manager 13c InstallationOracle Enterprise manager 13c Installation
Oracle Enterprise manager 13c Installation
 
Erp installation r12.2
Erp installation r12.2Erp installation r12.2
Erp installation r12.2
 
OBIA Installation
OBIA Installation OBIA Installation
OBIA Installation
 
Upgrade EBS DB from 11g to 12c.
Upgrade EBS DB from 11g to 12c.Upgrade EBS DB from 11g to 12c.
Upgrade EBS DB from 11g to 12c.
 
Eouc 12 on 12c osama mustafa
Eouc 12 on 12c osama mustafaEouc 12 on 12c osama mustafa
Eouc 12 on 12c osama mustafa
 
Install oracle siebel on windows 2008 r2
Install oracle siebel on windows 2008 r2Install oracle siebel on windows 2008 r2
Install oracle siebel on windows 2008 r2
 
Enable oracle database vault
Enable oracle database vaultEnable oracle database vault
Enable oracle database vault
 

Dernier

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Case study for software architect

  • 1. Osama Mustafa pg. 1 Case Study for Software Architect Contents Abstract:.................................................................................................................................................2 Introduction: ..........................................................................................................................................3 Overview: ...........................................................................................................................................3 Why we use application integration:.....................................................................................................3
  • 2. Osama Mustafa pg. 2 Implementation of application integration: ..........................................................................................4 APIs and Web Applications:...................................................................................................................4 An API or the System that Supplies it?...............................................................................................5 Useful components in this diagram:..................................................................................................9 Limitation:..............................................................................................................................................9 Technical Limitations: ........................................................................................................................9 Legal Limitations: ...............................................................................................................................9 More solutions can be implemented: -..................................................................................................9 1. Full inclusion.............................................................................................................................10 2. No inclusion..............................................................................................................................10 3. Micro services-based................................................................................................................11 criteria for to determine which design to choose ...............................................................................12 Considerations .....................................................................................................................................12 Abstract: We have two separate applications that we would like to integrate together. One is a WYSIWYG application for generating static websites. The other is an admin application for managing an online shopping site. We would like to be able to use the features of the Website Builder to design pages in the Web shop. In addition, we would also like to be able to manage product details (name, price, images, etc.) while updating Web shop pages in the Website Builder.
  • 3. Osama Mustafa pg. 3 Introduction: Overview: The ecosystem of e-commerce and business applications has evolved: highly specialized vendors now offer every kind of specialty tool, plug-in feature, and business operations application imaginable and still new applications are appearing every day. Incongruous operating systems and distributed applications installed on diverse hardware, with hundreds of different types of messages being sent and received simultaneously from the web and inside the organization require businesses to devote special attention to application integration possibilities. There is hardly a single web development project today that doesn’t involve some kind of 3rd party vendor integration, be it for adding the latest must-have consumer features, ensuring you have the appropriate site analytics and marketing metrics or integrating your business process applications into your website. As much as we would like to complete all our work in a single application, doing so is nearly impossible. There are various developers and entrepreneurs creating applications that specialize in assisting with specific needs and roles within companies. So, rather than relying on a single application, we inevitably end up relying on many. While this helps us complete multiple tasks, managing multiple applications and the data they store can be difficult. Application integration helps maintain, manage, and keep all your applications up to date while alleviating data duplication and redundancy. By creating an application integration network that allows applications to communicate with each other, business and work processes can be done more effectively and efficiently. Enterprise application integration (EAI) is used to describe application integration at the enterprise level where multiple applications are interconnected. Whether on the enterprise level or not, application integration can mitigate challenges related to data silos. Why we use application integration: The need for application integration stems from the need to move data between applications. This includes transferring data from one application to another in a scheduled, ongoing way or moving data once from a legacy system into something new. Or, in short, application integration is used to make life easier. With application integration, you can enter data once and connect it to multiple applications instead of entering the same data as many times as you have applications. When you add new data into an application that has been integrated with other applications, the data will be automatically distributed throughout the connected applications. This reduces human error, the need for manual
  • 4. Osama Mustafa pg. 4 intervention, and overall ensures consistency across your platforms. By having a comprehensive system that forms a bridge between heterogeneous applications, you won’t have to be concerned about whether your applications were originally intended to communicate with each other or not. This gives you the freedom and flexibility to choose applications of your choice, not just apps that are within a collection of technologies or from the same vendor. Implementation of application integration: The basic of APIs: Application integration is typically done with the use of APIs. An API (application programming interface) is a package of functions or rules that allow a user to reference and interact with parts of an application for their own purposes. This allows for control and flexibility for the end user while allowing the original creators to maintain their application without interference. Within an API are the protocols that allow for application integration to take place. While APIs these days are most often referencing web APIs, APIs have long been used to integrate on premise software systems. They have played a significant role in SOA (service-oriented architecture), which has mainly taken place on premise. This means application integration was only really able to take place internally. With the web and the development of cloud applications, application integration is more commonly an external process. You do not necessarily need to have an application stored on your computer for you to be able to access the API of an application. APIs and Web Applications: APIs for web applications have become very popular and essential for various tasks due to the increase in mobile applications and cloud-based software. Web APIs are distinct for the following reasons: • They are exposed over the web using an HTTP or HTTPS protocol • Public web APIs are available over the internet, typically with supporting documentation • They are most often built using JSON or XML While web APIs do share consistencies, most web APIs will be unique in the way that you can use them. These differences are dependent on how the developers of the application decided to create the corresponding API. Therefore, the specific information that is needed to fully make use of a specific API relies heavily on the documentation that is provided. Here is the work flow diagram of the whole working system.
  • 5. Osama Mustafa pg. 5 Figure 0.1 the work flow diagram As you can see how the user interact with the Application/System and how the Application and integrated API working combined and give the user a reliable system. And the user can access all the feature in single Application looks like everything is running on a one place. Here is a diagram which shows how the Application and API connect and communicate with each other by using API calls and pre-defined methods. Figure 0.2 how the Application and API connect An API or the System that Supplies it? Whatever symbol we choose, what we've done is to show the *system* rather than the actual API. The API is a definition of a service provided by the system in question. How should we provide more details about the API? There are a number of ways we could do this but my preference is to give details of the API on the connector (line connecting two elements/boxes). In C4 the guidelines for a container diagram includes
  • 6. Osama Mustafa pg. 6 listing protocol information on the connector and an API can be viewed as the layer above the protocol. For example: Figure 0.1 listing protocol information Many API providers supply multiple services/APIs (I'm not referring to different operations within an API but multiple sets of operations in different APIs, which may even use different underlying protocols.) • Allow a bulk, batch download of static data (such as details of companies listed on a stock market) via xml over HTTP. • Supply real time, low latency updates of market prices via bespoke messages over UDP. Two of the services use the same protocol (xml over HTTP) but have very different content and use. One of the APIs is used to constantly supply information after user subscription (market data) and the last service involves the user supplying all the information with no acknowledgment (although it should reconcile at EOD).
  • 7. Osama Mustafa pg. 7 There are multiple ways of showing this. We could: • Have a single service element, list the APIs on it and have all components linking to it. • Show each service/API as a separate box and connect the components that use the individual service to the relevant box. • Show a single service element with multiple connections. Each connection is labeled and represents an API. • Use a Port and Connector style notation to represent each API from the service provider. Provide a key for the ports. • Use a UML style 'cup and ball' notation to define interfaces and their usage. Some of these questions may come to your mind: • How are my services currently organized and exposed internally/externally? • How does the partner want to integrate with my system, e.g., internal networks, protocols, etc.? • How do I secure, track and manage the integration of my exposed services? The following integration diagram below illustrates (at a high level) the existing communication protocols between the components. You’ll also see how some of the services are being exposed to third- party developers via the External API Gateway at the logic layer.
  • 8. Osama Mustafa pg. 8 Figure 0.2 existing communication protocols between the components From the diagram above, you’ll realize that the system was designed to be API-driven, which makes it easy for integration. Almost all the services are exposed via web services, including the data storage components. The next step is to check with the partner on the list of services that they require, mode of integration, e.g. internal or external, and cross-reference the requirements with the services exposed via the API catalogue. There are also follow-up action items, i.e. working with the system engineers to decide on the security and monitoring of exposed services. Sometimes, there may be requirement gaps such as partner wants to integrate externally, but your services are only exposed internally, or certain data attributes are missing. In such cases, efforts would have to be factored in to cater to the requirements. The integration diagram has to highlight details, i.e. internal services/APIs, link to API catalogue, etc. to identify such gaps quickly.
  • 9. Osama Mustafa pg. 9 Useful components in this diagram: Grouped components into layers and bounded contexts — an indication of internal/external API gateways and services Annotations with additional information — reference links to API catalogues where detailed service data attributes can be obtained to assess gaps Application details and context — services are named appropriately to allow quick assessment of requirements v.s. actual. Limitation: Technical Limitations: Many API providers have technical limitations in place. I list a few here: • Rate Limits: Many API providers have limits on the number of queries you can execute per day. You would need to make sure your application doesn’t need to exceed that limit, and find workarounds for that. • Request/Response Formats: Many API providers require you to create your requests and receive your responses in a specific format. Make sure that your application can support such requests without a major overhaul. This is especially true when integrating APIs with existing systems. • Request Restrictions: Some API providers only allow you to execute requests from specific domains/IPs. Your integration plan needs to address those issues if they exist. Legal Limitations: In addition to the technical limitations mentioned above, some API providers have legal limitations in place in order to make sure that data retrieved via the API is properly used. For example, LinkedIn allows you to fetch a user’s connection information, but it doesn’t allow you to share that data with third parties. Although this is technically possible, it’s legally impossible to do so, and implementing such a solution will only cause your API access to be cut. Knowing those legal limitations in advance will help you properly plan your integration and address any issues earlier in the process. More solutions can be implemented: -
  • 10. Osama Mustafa pg. 10 1. Full inclusion of web builder with admin app meaning web builder is basically in the administration app. In this case builder app will automatically have access to all data like product process, photos, etc, which will eliminate any data flow, hence remove communication delays. However, this might also lead to slow app response or even legging at times because its heavy since two apps inclusively combined. Figure 0.1 ARCHITECTURAL DESIGN FOR FULL INCLUSION DESIGN 2. No inclusion of web builder with admin app meaning instead of combining both apps completely one can integrate them on module bases. New web builder functionality can be developed separately without have any connection with admin application. It will be faster in the sense that it will be lighter. However, it will have quite a lot flow of data between admin app and builder module, which might add some communication delays.
  • 11. Osama Mustafa pg. 11 Figure 0.2 ARCHITECTURAL DESIGN FOR NO INCLUSION DESIGN 3. Micro services-based integrations of admin app and web builder application. Currently admin app has monolithic backend which has to be converted to micro services and then implement builder as a service a well. It will counter all drawbacks of above designs like slow app response and communication delays. This the best solution with robust solution and opportunity to integrate more features in future. Please visit https://www.ibm.com/cloud/learn/microservices to learn more about micro services. Figure 0.3 ARCHITECTURAL DESIGN FOR MICRO SERVICES-BASED DESIGN
  • 12. Osama Mustafa pg. 12 criteria for to determine which design to choose Criteria Full Inclusion Design No Inclusion Design Micro service Design Heavy app Yes No NO Communication delays No Yes NO Expensive to Implement No No Yes Is robust No No Yes Benefits Future Integration No No Yes Require New Technology No No Yes Considerations First and foremost, front end users’ experience should be the priority. As it is quite easy for developers to not consider how their actions might affect user experience when working on back-end project like this. Depending on current architectural design of the shopping site it will differ how much refactoring is required to make it changeable and controllable by a website builder. For example, if it does not follow basic component driven design principles then it can lead to extra work as website itself has to be refactored significantly before connecting it to a website builder. This refactoring of front end could result in some changes to UI which might feel unfamiliar to regular users or even lost functionality in worst case scenario. Another important aspect to consider would be how admin application will integrate with web builder. For example, if web builder and current administrational functionalities are implemented on same page or as described in document as one-page application, then it might cause the application to slow down or even leggy at points. A robust design will avoid these issues and also give opportunity to integrate additional functionalities with ease in future. Last but not least, a separate local environment or testing server should be used for this whole process. It happens quite often then due to some error or mistake the whole website goes down and obviously that’s not great for a live website. Furthermore, for extra security the website should have a backup before start implementing anything.