SlideShare a Scribd company logo
1 of 24
CUSTOM
T U E S D AY 3 R D A P R I L 2 0 1 8 , P R O V I D E N C E ( R I ) U S A
PLUG-INS
WHY PLUG-IN IS NEEDED?
softserv.iawareim.com
Aware IM is a powerful software system that allows users to configure
web based applications. The beauty of AwareIM is that there are certain
avenues or opportunities where Aware IM’s capabilities can be
extended/enhanced:-
A Java plug-in comes in handy when the user wants to implement:-
1. Any functionality that is difficult to configure using configuration
tool.
2. Complex mathematical algorithms not supported by configuration
tool.
3. Interaction with a non-standard hardware/software not supported
by configuration tool out-of-the-box.
4. Interacting with 3rd party applications through RESTful APIs
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #1 – Database Extensions
Use Case: - When a CRUD operation needs more efficiency in terms of processing and the time
it takes for operations on the DB.
Problem: - Traditional AwareIM CRUD operations slow down and could take good amount of
time if the operations are repetitive in nature.
Solution: - A Good solution would be to utilize the power of Stored Procedures.
Stored Procedures on a Database can be called directly from within AwareIM
Stats: -
*(Follow Bruce Lomasky’s Session for more information)
Input Process Output
DB credentials
1. DB connectivity
2. Fetch data
Processed data
S No Operation Time In AIM Time in SP
1 Select 20K from 2M - Insert (20K)
objects
4 hrs 1 Hr
2 Select 50K from 2M – Update Attribute
of those 50K objects.
12 hrs 2.5 Hrs
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #2 – Aware IM, Java & Database
Use Case: - When a CRUD operation needs more efficiency along with some intermediate
operations/ analysis (Some business rules for processing the data).
Problem: - Calling SP from AwareIM and switching between AIM/SP to-and-fro has some
overheads and it slows down and could take good amount of time if the operations are repetitive
in nature.
Solution: - The solution can be optimized by calling Stored Procedures through a Java Plugin and
implementing the processing rules in Java, returning the data in Processed form back to AwareIM.
Stats: -
Input Process Output
DB credentials
1. DB connectivity
2. Fetch data
Processed data
S No Operation Time In AIM SP in AIM SP In
JAVA
1 Select 20K from 2M - Insert
(20K) objects
4 hrs 1 Hr 15 Min.
2 Select 50K from 2M – Update
Attribute of those 50K
objects.
12 hrs 2.5 Hrs 50 Min.
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #2 – Aware IM, Java & Database …
Prerequisites: - Prior knowledge of AwareIM, Java and Database is required for this approach.
Connectivity: - Database can be connected by two ways:
1. BAS Props file – Fetch DB credentials from BAS Props file directly in JAVA and use them.
2. Host DB credentials anywhere in the system (Preferably System Settings) and access it in
JAVA.
• Calls the Java
plugin
• Sends the criteria
data to the plugin
via an AIM Object
• Receives the
criteria,
• Builds the SQL,
• Call to DB.
• Receive Results,
• Process Results,
• Populate AIM
Object
• Send Object back
to AIM
AwareIM
DB
JAVA
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #2 – Aware IM, Java & Database
Code snippet
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
Google Map Marker
Goal: To Display customized marker colours on google map and customized mouse hover text
Limitation: Aware IM returns only First Name and Last Name.
Solution: Plug-in is needed for rest of the fields like:-
1. Colour
2. Direction changes
3. Shortest/Longest routes
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
More Info – Google Map Marker
• This plug-in is written in Java and works at server side.
• It takes input from AwareIM BOs for Geo Codes (Longitude/Latitude) & User Defined
Marker Color.
• It then displays locations on Google Map with corresponding marker color.
• It also takes data input from a BO attribute and displays it as text on mouse hover the
location.
• Google Maps JavaScript API ver 3.26 is used for this plug-in.
• It is not limited to only marker color or mouse hover text but can be enhanced for more
functions supported by the API.
• Implementation is seamless and quick and compatible with all AwareIM versions.
Live Demo: You can browse the sample app online @ Google Map Marker
Username: test
Password: test
Aware IM Verion/Build: Works with all versions
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #3 – Aware IM & Java
Use Case: - When you require some custom business logics to be implemented on any AwareIM
object which looks difficult to be achieved in Aware IM. (Some business rules for processing the
data).
Problem: - There are certain business operations on the Data which are either not entirely
possible through AwareIM alone or are not efficient enough. Eg. – If you need to modify some
attribute based on some calls to APIs/ Database operations.
Solution: - The solution can be optimized by taking the code into Java, running the Aware IM
rule/HQL query is passed in Java code, process the data, modify the object as per the need and
return the modified object back to Aware IM.
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #3 – Aware IM & Java…
Prerequisites: - Prior knowledge of AwareIM and Java is required for this approach.
Data Flow: - Data Flows between AwareIM and JAVA Plugin as below:
• Calls the Java
plugin
• Sends the criteria
data to the plugin
via an AIM Object
• Receives the
criteria,
• Process Results,
• Modified AIM
Object
• Send Object back
to AIM
AwareIM JAVA
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #3 – Aware IM & Java…
Code Snippet: -
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
Great Circle Distance Calculator
Goal: To Calculate great circle distance between two locations using HAVERSINE formula
Limitation: Aware IM does not have a way to do complex mathematical calculations required in
HAVERSINE formulae.
Solution: Plug-in is needed for such complex calculation
• Calls the Java plugin
• Sends the Object
with below
Attributes:
• Lat.
• Long.
• Distance
• Receives the Object,
• Calculates Distance Using
Haversine formulae
• Populates Distance
Attribute of the Object
• Send Object back to AIM
AwareIM JAVA
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
Code Snippet - Great Circle Distance Calculator
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
More Info – Great Circle Distance Calculator
• This plug-in is written in Java and works at server side.
• It takes following inputs from AwareIM:
• Longitude, Latitude of first point
• Longitude, Latitude of second point
• It returns back the great circle distance in kms. to a BO.
• There are no APIs used but HAVERSINE mathematical formula is implemented.
• Implementation is seamless and quick
Live Demo: You can browse the sample app online @ Distance Calculator
Username: test
Password: test
Aware IM Verion/Build: Works with all versions
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #4 – Consume APIs in Aware IM
Use Case: - When we need to fetch data from external sources and utilize that in our AwareIM
Application.
Problem: - Prior to 8.1, AwareIM had no means to fetch data from external sources. Even with
AwareIM 8.1, there are some limitations which might compel us to move to this approach.
Solution: - The solution can be to consume the 3rd party REST APIs within Java and have the Java
code return an AwareIM object back as result.
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #4 – Consume APIs in Aware IM
Prerequisites: - Prior knowledge of AwareIM, Java is required for this approach.
Data Flow: - Data Flows between AwareIM and JAVA Plugin as below:
• Calls the Java
plugin
• Sends the criteria
data to the plugin
via an AIM Object
• Receives the criteria,
• Builds the REST APIs
Request
• Calls the REST APIs
AwareIM
JAVA
• Receive REST API Response
• Create JSON Arrays/Objects
• Map them to AIM Object
• Return AIM Object back
JAVA
REST APIs
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #4 – Consume APIs in Aware IM
Sample Code:
PLUG-IN / EXTENSIONS (EXAMPLE)
softserv.iawareim.com
Runtime message broadcaster (using Pusher services):
Goal: Add bi-directional communication to your apps, Bind UI interactions to events that are
triggered from any client or server
Limitation: Prior to AIM 8.1, 3rd Party REST APIs could not be called from within Aware IM.
Solution: A Java Plug-in is needed for which would: -
Send the REST API Request to 3rd Party Server.
Perform the intended Action or Return the intended Response.
Populate the APIM Object with response and return it back to AwareIM.
PLUG-IN / EXTENSIONS (MORE EXAMPLES)
softserv.iawareim.com
Calendly
Calendly supports webhooks which allows to receive Calendly appointment data in real-time at a
specified URL when a Calendly event is scheduled or cancelled.
Create calendar
invite
• Start Time
• End Time
• Event Name
• Location
• Description
Data captured via
unique User ID
Create calendar invite
in Appointment
object
• Start Time
• End Time
• Event Name
• Location
• Description
Data captured via
unique User ID
Calendly Webhooks API Aware IM API Aware IM
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #5 – Aware IM Advanced Script
Use Case: - When we need to enhance AwareIM features to incorporate certain JavaScript APIs to
improve the functionality set of AwareIM or to modify the behaviour of inherent AwareIM UI.
Problem: - There are a lot of times when we need features and functionalities which are inherently
not available with AwareIM. Example – Enhancing feature set of Google Maps, QR code and
Barcode Scanning etc.
Solution: - All such problems have a JavaScript library/API available for us to utilize and consume.
With a very minimal configuration or just about no configuration, we can add such scripts to
Advanced Scripts configuration of AwareIM and utilize the power of such libraries within AwareIM.
*(Covered in Previous Session on April 2nd, 2018)
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Option #4 – Aware IM Advanced Script
Sample Code:
TYPES OF PLUG-IN / EXTENSIONS
softserv.iawareim.com
Options Pros Cons
Option #1 – Database Extensions • No Java programming
needed
• Expert-level AIM knowledge
needed
• DB knowledge needed
Option #2 – Aware IM, Java &
Database
• AIM knowledge • Java programming needed
• DB knowledge needed
Option #3 – Aware IM & Java • AIM knowledge • Java programming needed
Option #4 – REST APIs in Aware
IM
• AIM knowledge • Java programming needed
• API knowledge needed
Option #5 – Advanced Script • AIM knowledge • Java programming needed
* AIM = Aware IM
OTHER IMPLEMENTATIONS
softserv.iawareim.com
1. Zimbra Integration: Use of webhooks to send and receive calendar invites from
Appointments
2. Twilio : Send/receive Text messages or make/receive voice calls
3. Google Web Speech API : Add speech recognition on Aware IM web pages
4. Text Local : Send/receive Text messages using APIs
5. Twitter : Fetch profile photograph on the basis of email id
6. Simplified PDF Reports : Fetch data from database via Stored Procedure and convert to PDF
file
7. ABN lookup : Look up feature on the basis of ABN, Business Name, Trading Name or Legal
Name
8. High charts : Charts like 3D chart, Heat Map, Scatter chart, Bubble chart, Combinations chart
etc
THANK YOU!

More Related Content

What's hot

PeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance TunningPeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance TunningInSync Conference
 
EliteMindz: Who are we? Where do we serve ? What are our products & services?
EliteMindz: Who are we? Where do we serve ? What are our products & services?EliteMindz: Who are we? Where do we serve ? What are our products & services?
EliteMindz: Who are we? Where do we serve ? What are our products & services?Simerjeet Singh
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance TestingAtul Pant
 
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developer
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application DeveloperKarthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developer
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developerkarthikeyan krishnan
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...Peter Broadhurst
 
APE-Annotation Programming For Energy Eciency in Android
APE-Annotation Programming For Energy Eciency in AndroidAPE-Annotation Programming For Energy Eciency in Android
APE-Annotation Programming For Energy Eciency in Androidkaranwayne
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunnervladimir zaremba
 
EMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentEMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentHaytham Ghandour
 
Sunil S _Selenium_5.3yrs_Resume
Sunil S _Selenium_5.3yrs_ResumeSunil S _Selenium_5.3yrs_Resume
Sunil S _Selenium_5.3yrs_ResumeSunil Sharanappa
 
Performance comparison on java technologies a practical approach
Performance comparison on java technologies   a practical approachPerformance comparison on java technologies   a practical approach
Performance comparison on java technologies a practical approachcsandit
 

What's hot (13)

PeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance TunningPeopleSoft Integration broker Performance Tunning
PeopleSoft Integration broker Performance Tunning
 
EliteMindz: Who are we? Where do we serve ? What are our products & services?
EliteMindz: Who are we? Where do we serve ? What are our products & services?EliteMindz: Who are we? Where do we serve ? What are our products & services?
EliteMindz: Who are we? Where do we serve ? What are our products & services?
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance Testing
 
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developer
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application DeveloperKarthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developer
Karthikeyan Krishnan_5.0_Years_NMS_EMS_Application Developer
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
 
APE-Annotation Programming For Energy Eciency in Android
APE-Annotation Programming For Energy Eciency in AndroidAPE-Annotation Programming For Energy Eciency in Android
APE-Annotation Programming For Energy Eciency in Android
 
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunner
 
EMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentEMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and Deployment
 
Sunil S _Selenium_5.3yrs_Resume
Sunil S _Selenium_5.3yrs_ResumeSunil S _Selenium_5.3yrs_Resume
Sunil S _Selenium_5.3yrs_Resume
 
Sangeetha_G
Sangeetha_GSangeetha_G
Sangeetha_G
 
Performance comparison on java technologies a practical approach
Performance comparison on java technologies   a practical approachPerformance comparison on java technologies   a practical approach
Performance comparison on java technologies a practical approach
 

Similar to AwareIM Custom plug ins

Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...CodeScience
 
Navjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot Thakur
 
2 d barcode based mobile payment system
2 d barcode based mobile payment system2 d barcode based mobile payment system
2 d barcode based mobile payment systemParag Tamhane
 
Deepak_Raghav Resume done
Deepak_Raghav Resume doneDeepak_Raghav Resume done
Deepak_Raghav Resume doneDeepak Raghav
 
Resume_For_Embedded_Engineer
Resume_For_Embedded_EngineerResume_For_Embedded_Engineer
Resume_For_Embedded_EngineerRaj Kumar
 
Rest Api Performance Testing with JMeter and EC2
Rest Api Performance Testing with JMeter and EC2Rest Api Performance Testing with JMeter and EC2
Rest Api Performance Testing with JMeter and EC2Maneesh Srivastava
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Amin Bandeali
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineTahir Akram
 
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...IBM Systems UKI
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Prolifics
 
Subhajit das resume_2015
Subhajit das resume_2015Subhajit das resume_2015
Subhajit das resume_2015Subhajit Das
 
Subhajit_Das_Resume_2015
Subhajit_Das_Resume_2015Subhajit_Das_Resume_2015
Subhajit_Das_Resume_2015Subhajit Das
 
Feedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsFeedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsGuillaume Meyer
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework'Ashmeet Sehgal'
 

Similar to AwareIM Custom plug ins (20)

shiv_chandra_pathak
shiv_chandra_pathakshiv_chandra_pathak
shiv_chandra_pathak
 
Save Azure Cost
Save Azure CostSave Azure Cost
Save Azure Cost
 
Presentaion final
Presentaion finalPresentaion final
Presentaion final
 
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
 
Navjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot_Resume_2017_Latest
Navjot_Resume_2017_Latest
 
2 d barcode based mobile payment system
2 d barcode based mobile payment system2 d barcode based mobile payment system
2 d barcode based mobile payment system
 
Deepak_Raghav Resume done
Deepak_Raghav Resume doneDeepak_Raghav Resume done
Deepak_Raghav Resume done
 
Resume_For_Embedded_Engineer
Resume_For_Embedded_EngineerResume_For_Embedded_Engineer
Resume_For_Embedded_Engineer
 
Rest Api Performance Testing with JMeter and EC2
Rest Api Performance Testing with JMeter and EC2Rest Api Performance Testing with JMeter and EC2
Rest Api Performance Testing with JMeter and EC2
 
Krishan_kant_testing_Resume
Krishan_kant_testing_ResumeKrishan_kant_testing_Resume
Krishan_kant_testing_Resume
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
MyATM
MyATMMyATM
MyATM
 
Subhajit das resume_2015
Subhajit das resume_2015Subhajit das resume_2015
Subhajit das resume_2015
 
Subhajit_Das_Resume_2015
Subhajit_Das_Resume_2015Subhajit_Das_Resume_2015
Subhajit_Das_Resume_2015
 
WEB API Gateway
WEB API GatewayWEB API Gateway
WEB API Gateway
 
Feedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams AppsFeedback on building Production-Ready Microsoft Teams Apps
Feedback on building Production-Ready Microsoft Teams Apps
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
 

Recently uploaded

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterMateoGardella
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 

Recently uploaded (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

AwareIM Custom plug ins

  • 1. CUSTOM T U E S D AY 3 R D A P R I L 2 0 1 8 , P R O V I D E N C E ( R I ) U S A PLUG-INS
  • 2. WHY PLUG-IN IS NEEDED? softserv.iawareim.com Aware IM is a powerful software system that allows users to configure web based applications. The beauty of AwareIM is that there are certain avenues or opportunities where Aware IM’s capabilities can be extended/enhanced:- A Java plug-in comes in handy when the user wants to implement:- 1. Any functionality that is difficult to configure using configuration tool. 2. Complex mathematical algorithms not supported by configuration tool. 3. Interaction with a non-standard hardware/software not supported by configuration tool out-of-the-box. 4. Interacting with 3rd party applications through RESTful APIs
  • 3. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #1 – Database Extensions Use Case: - When a CRUD operation needs more efficiency in terms of processing and the time it takes for operations on the DB. Problem: - Traditional AwareIM CRUD operations slow down and could take good amount of time if the operations are repetitive in nature. Solution: - A Good solution would be to utilize the power of Stored Procedures. Stored Procedures on a Database can be called directly from within AwareIM Stats: - *(Follow Bruce Lomasky’s Session for more information) Input Process Output DB credentials 1. DB connectivity 2. Fetch data Processed data S No Operation Time In AIM Time in SP 1 Select 20K from 2M - Insert (20K) objects 4 hrs 1 Hr 2 Select 50K from 2M – Update Attribute of those 50K objects. 12 hrs 2.5 Hrs
  • 4. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #2 – Aware IM, Java & Database Use Case: - When a CRUD operation needs more efficiency along with some intermediate operations/ analysis (Some business rules for processing the data). Problem: - Calling SP from AwareIM and switching between AIM/SP to-and-fro has some overheads and it slows down and could take good amount of time if the operations are repetitive in nature. Solution: - The solution can be optimized by calling Stored Procedures through a Java Plugin and implementing the processing rules in Java, returning the data in Processed form back to AwareIM. Stats: - Input Process Output DB credentials 1. DB connectivity 2. Fetch data Processed data S No Operation Time In AIM SP in AIM SP In JAVA 1 Select 20K from 2M - Insert (20K) objects 4 hrs 1 Hr 15 Min. 2 Select 50K from 2M – Update Attribute of those 50K objects. 12 hrs 2.5 Hrs 50 Min.
  • 5. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #2 – Aware IM, Java & Database … Prerequisites: - Prior knowledge of AwareIM, Java and Database is required for this approach. Connectivity: - Database can be connected by two ways: 1. BAS Props file – Fetch DB credentials from BAS Props file directly in JAVA and use them. 2. Host DB credentials anywhere in the system (Preferably System Settings) and access it in JAVA. • Calls the Java plugin • Sends the criteria data to the plugin via an AIM Object • Receives the criteria, • Builds the SQL, • Call to DB. • Receive Results, • Process Results, • Populate AIM Object • Send Object back to AIM AwareIM DB JAVA
  • 6. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #2 – Aware IM, Java & Database Code snippet
  • 7. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com Google Map Marker Goal: To Display customized marker colours on google map and customized mouse hover text Limitation: Aware IM returns only First Name and Last Name. Solution: Plug-in is needed for rest of the fields like:- 1. Colour 2. Direction changes 3. Shortest/Longest routes
  • 8. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com More Info – Google Map Marker • This plug-in is written in Java and works at server side. • It takes input from AwareIM BOs for Geo Codes (Longitude/Latitude) & User Defined Marker Color. • It then displays locations on Google Map with corresponding marker color. • It also takes data input from a BO attribute and displays it as text on mouse hover the location. • Google Maps JavaScript API ver 3.26 is used for this plug-in. • It is not limited to only marker color or mouse hover text but can be enhanced for more functions supported by the API. • Implementation is seamless and quick and compatible with all AwareIM versions. Live Demo: You can browse the sample app online @ Google Map Marker Username: test Password: test Aware IM Verion/Build: Works with all versions
  • 9. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #3 – Aware IM & Java Use Case: - When you require some custom business logics to be implemented on any AwareIM object which looks difficult to be achieved in Aware IM. (Some business rules for processing the data). Problem: - There are certain business operations on the Data which are either not entirely possible through AwareIM alone or are not efficient enough. Eg. – If you need to modify some attribute based on some calls to APIs/ Database operations. Solution: - The solution can be optimized by taking the code into Java, running the Aware IM rule/HQL query is passed in Java code, process the data, modify the object as per the need and return the modified object back to Aware IM.
  • 10. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #3 – Aware IM & Java… Prerequisites: - Prior knowledge of AwareIM and Java is required for this approach. Data Flow: - Data Flows between AwareIM and JAVA Plugin as below: • Calls the Java plugin • Sends the criteria data to the plugin via an AIM Object • Receives the criteria, • Process Results, • Modified AIM Object • Send Object back to AIM AwareIM JAVA
  • 11. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #3 – Aware IM & Java… Code Snippet: -
  • 12. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com Great Circle Distance Calculator Goal: To Calculate great circle distance between two locations using HAVERSINE formula Limitation: Aware IM does not have a way to do complex mathematical calculations required in HAVERSINE formulae. Solution: Plug-in is needed for such complex calculation • Calls the Java plugin • Sends the Object with below Attributes: • Lat. • Long. • Distance • Receives the Object, • Calculates Distance Using Haversine formulae • Populates Distance Attribute of the Object • Send Object back to AIM AwareIM JAVA
  • 13. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com Code Snippet - Great Circle Distance Calculator
  • 14. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com More Info – Great Circle Distance Calculator • This plug-in is written in Java and works at server side. • It takes following inputs from AwareIM: • Longitude, Latitude of first point • Longitude, Latitude of second point • It returns back the great circle distance in kms. to a BO. • There are no APIs used but HAVERSINE mathematical formula is implemented. • Implementation is seamless and quick Live Demo: You can browse the sample app online @ Distance Calculator Username: test Password: test Aware IM Verion/Build: Works with all versions
  • 15. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #4 – Consume APIs in Aware IM Use Case: - When we need to fetch data from external sources and utilize that in our AwareIM Application. Problem: - Prior to 8.1, AwareIM had no means to fetch data from external sources. Even with AwareIM 8.1, there are some limitations which might compel us to move to this approach. Solution: - The solution can be to consume the 3rd party REST APIs within Java and have the Java code return an AwareIM object back as result.
  • 16. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #4 – Consume APIs in Aware IM Prerequisites: - Prior knowledge of AwareIM, Java is required for this approach. Data Flow: - Data Flows between AwareIM and JAVA Plugin as below: • Calls the Java plugin • Sends the criteria data to the plugin via an AIM Object • Receives the criteria, • Builds the REST APIs Request • Calls the REST APIs AwareIM JAVA • Receive REST API Response • Create JSON Arrays/Objects • Map them to AIM Object • Return AIM Object back JAVA REST APIs
  • 17. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #4 – Consume APIs in Aware IM Sample Code:
  • 18. PLUG-IN / EXTENSIONS (EXAMPLE) softserv.iawareim.com Runtime message broadcaster (using Pusher services): Goal: Add bi-directional communication to your apps, Bind UI interactions to events that are triggered from any client or server Limitation: Prior to AIM 8.1, 3rd Party REST APIs could not be called from within Aware IM. Solution: A Java Plug-in is needed for which would: - Send the REST API Request to 3rd Party Server. Perform the intended Action or Return the intended Response. Populate the APIM Object with response and return it back to AwareIM.
  • 19. PLUG-IN / EXTENSIONS (MORE EXAMPLES) softserv.iawareim.com Calendly Calendly supports webhooks which allows to receive Calendly appointment data in real-time at a specified URL when a Calendly event is scheduled or cancelled. Create calendar invite • Start Time • End Time • Event Name • Location • Description Data captured via unique User ID Create calendar invite in Appointment object • Start Time • End Time • Event Name • Location • Description Data captured via unique User ID Calendly Webhooks API Aware IM API Aware IM
  • 20. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #5 – Aware IM Advanced Script Use Case: - When we need to enhance AwareIM features to incorporate certain JavaScript APIs to improve the functionality set of AwareIM or to modify the behaviour of inherent AwareIM UI. Problem: - There are a lot of times when we need features and functionalities which are inherently not available with AwareIM. Example – Enhancing feature set of Google Maps, QR code and Barcode Scanning etc. Solution: - All such problems have a JavaScript library/API available for us to utilize and consume. With a very minimal configuration or just about no configuration, we can add such scripts to Advanced Scripts configuration of AwareIM and utilize the power of such libraries within AwareIM. *(Covered in Previous Session on April 2nd, 2018)
  • 21. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Option #4 – Aware IM Advanced Script Sample Code:
  • 22. TYPES OF PLUG-IN / EXTENSIONS softserv.iawareim.com Options Pros Cons Option #1 – Database Extensions • No Java programming needed • Expert-level AIM knowledge needed • DB knowledge needed Option #2 – Aware IM, Java & Database • AIM knowledge • Java programming needed • DB knowledge needed Option #3 – Aware IM & Java • AIM knowledge • Java programming needed Option #4 – REST APIs in Aware IM • AIM knowledge • Java programming needed • API knowledge needed Option #5 – Advanced Script • AIM knowledge • Java programming needed * AIM = Aware IM
  • 23. OTHER IMPLEMENTATIONS softserv.iawareim.com 1. Zimbra Integration: Use of webhooks to send and receive calendar invites from Appointments 2. Twilio : Send/receive Text messages or make/receive voice calls 3. Google Web Speech API : Add speech recognition on Aware IM web pages 4. Text Local : Send/receive Text messages using APIs 5. Twitter : Fetch profile photograph on the basis of email id 6. Simplified PDF Reports : Fetch data from database via Stored Procedure and convert to PDF file 7. ABN lookup : Look up feature on the basis of ABN, Business Name, Trading Name or Legal Name 8. High charts : Charts like 3D chart, Heat Map, Scatter chart, Bubble chart, Combinations chart etc