providing scientific solutions as an online service: a soap solution sp lake, afg taktak, ac fisher,...
TRANSCRIPT
Providing scientific solutions as an online service: a SOAP solution
SP Lake, AFG Taktak, AC Fisher, R Teymouri
Dept of Medical Physics & Clinical Engineering
Overview
• Make the business case for reusing software
• Is it carried out in practice?
• Is there another way?
• Advantages/disadvantages
• Real world applications of the method
• Crank it up a notch
What is software in business terms?
Tangible Intangible HumanFinancial Technology Skills/know-how
Physical Brand/reputation Capacity for communication and collaboration
Culture Motivation
Grant, R.M. (2002) Contemporary Strategy Analysis, 4th edn, Oxford, Blackwell
Grant’s Classification of Resources*
What is software in business terms?
Tangible Intangible HumanFinancial Technology Skills/know-how
Physical Brand/reputation Capacity for communication and collaboration
Culture Motivation
Grant, R,M. (2002) Contemporary Strategy Analysis, 4th edn, Oxford, Blackwell
Grant’s Classification of Resources*
• Software is a tangible intangible, i.e. represents a physical form of technology in its bits and bytes
• It is also representative of know-how, i.e. how to carryout a process, which infers knowledge
• Real big point:
It doesn’t deplete the more you use of it
Software as a resource
• Radiotherapy treatment planning systems
• PACS
• Image analysis, e.g. Nuclear Medicine, MRI
• Signal analysis, e.g. physiological measurement
• External to MP&CE, e.g. decision support, medical device interfacing
Medical Physics & Clinical Engineering Software
Is there a market?
Development life cycle - investment
Project
Management
Specification
Design
Development
Testing
Implementation
Risk
Management
Development life cycle - investment
Project
Management
Specification
Design
Development
Testing
Implementation
Risk
Management
• How many people have reused software developed for one project on another?
• Isn’t this what object orientated programming was all about?
Straw poll
Opportunities to reuse code
On different products
On the same product in different components
On the same product in the same component on different versions
• Not worth the effort due to work involved designing for
reuse• It takes 3x the effort to build a reusable part compared
to building a part for one-time use• “Often doesn’t pay off” – John McGregor, Associate
Professor of Computer Science at University of Clemson• One area that is successful is the large scale reuse of
server components which represent business logic
http://www.informationweek.com/708/08iuhid.htm
Some criticisms of reuse
Scientific solutionsPresentation
Layer
Application Layer
Data Layer
User Interface
Scientific algorithm
Data storage
ODBC Drivers
E.g. Microsoft SQL, Excel
E.g. m files in MatLAB
E.g. web pages, compiled apps
RPC Protocol
Scientific solutionsPresentation
Layer
Application Layer
Data Layer
User Interface
Scientific algorithm
Data storage
ODBC Drivers
E.g. Microsoft SQL, Excel
E.g. m files in MatLAB
E.g. web pages, compiled apps
RPC Protocol? CORBA, MS RPC
or SOAP
• XML Structured Packet• Contains a method name, input and output
data• Can be transferred in a number of ways,
FTP, email or http etc• W3C Standard• Supported by many languages and
applications
Simple Object Access Protocol
• Application logic is held on central server so updates are easier to manage and IP protected
• http usually already configured to traverse firewalls• Can focus on mathematical logic first without getting
distracted by the look and feel of the user interface• Multiple front ends can be used all calling the same
proven mathematical logic, e.g. web pages, desktop applications, mobile applications and even MS Office
Advantages
• Application needs to be designed as a series of
short, autonomous, sets of routines:– No such thing as a session – client holds
credentials– Record locking between calls is not allowed– The order of RPCs should not be important– Long processing needs to be done in the
background and polled for– Asynchronous use takes real careful design to
avoid LOF (leaps of faith)
Disadvantages
A gateway (Bridge) to convert SOAP Protocol to MATLAB Command line.
MATSOAP VBA Module Call
Excel on client machine
Returned Excel Workbook
creates a COM server application running the Microsoft Excel spread sheet program
Validate Workbook Vs. Master Protocol
Check User Requested analysis Type
Perform Analysis
Create returning Excel File
MATSOAP Application: Excel Interface
By using multiple front end applications all working with the same backend can accommodate explosion in new devices, e.g. Mobile phones and tablets
MATSOAP Objective C Module Call
MATLAB to perform a simple
product calculation
MATSOAP Application: Mobile App, Xcode
A gateway (Bridge) to convert SOAP Protocol to MATLAB Command line.
• There is a strong business case for designing software
for reuse• It isn’t always worth the effort, e.g. MP&CE• With the exception of server components• Architecturally splitting off the application logic• SOAP has an important part to play• We’ve demonstrated how this can be done with MatLAB• There are many advantages but you need to rethink
your approach to design
In conclusion