1 developing enterprise applications a technology perspective v. “juggy” jagannathan associate...
TRANSCRIPT
11
Developing Enterprise Applications A technology perspective
V. “Juggy” JagannathanAssociate Professor of Computer Science
West Virginia University
VP of ResearchMedQuist
22
DisclosureDisclosure
MedQuist, Inc. sells and operates MedQuist, Inc. sells and operates enterprise dictation and transcription enterprise dictation and transcription
software. software.
33
Tutorial GoalsTutorial Goals
Provide overview of the technologies Provide overview of the technologies that are relevant for the that are relevant for the development and deployment of development and deployment of enterprise solutions – in particular enterprise solutions – in particular ASP solutionsASP solutions
Allow participants to evaluate where Allow participants to evaluate where the technology is headedthe technology is headed
Use transcription industry as the Use transcription industry as the main examplemain example
44
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
55
What is an ASP?What is an ASP?
Application Service Provider (ASP) provides Application Service Provider (ASP) provides applications to customers on a applications to customers on a subscription basis. ASPs provide for all the subscription basis. ASPs provide for all the infrastructure needs to host the application infrastructure needs to host the application and rely on Internet or Intranets to deliver and rely on Internet or Intranets to deliver the applications to customers. the applications to customers.
ASPs are Enterprise Applications and need ASPs are Enterprise Applications and need to satisfy a wide range of stringent to satisfy a wide range of stringent requirements.requirements.
66
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
77
ASP RequirementsASP Requirements
FlexibilityFlexibility SecuritySecurity ReliabilityReliability AvailabilityAvailability ScalabilityScalability EvolvabilityEvolvability PerformancePerformance SupportabilitySupportability MaintainabilityMaintainability InteroperabilityInteroperability
Platform IndependencePlatform Independence Location IndependenceLocation Independence Open Standards and SystemsOpen Standards and Systems Architectural ChoicesArchitectural Choices
88
FlexibilityFlexibility
Ability to configure solutions that Ability to configure solutions that satisfies customer’s workflow satisfies customer’s workflow needs. needs.
For the transcription industry:For the transcription industry:– Dictation workflowDictation workflow– Transcription workflowTranscription workflow– Signature workflowSignature workflow– Routing workflowRouting workflow
It is the process stupid! Not technology. – Mike Waldrum, UAB
99
Flexibility – Edge ComputingFlexibility – Edge Computing
Off-Premise Computation
Internet
On-Premise Computation
Focus computation where it can be mosteffective to meet the needs of the workflow
1010
SecuritySecurity Compliant with all HIPAA’s upcoming Compliant with all HIPAA’s upcoming
regulations. regulations. Encryption of communication.Encryption of communication. Stringent access control. Stringent access control. Audit trails. Audit trails. Physical security of premisesPhysical security of premises Virus protection & Intrusion detectionVirus protection & Intrusion detection
Encryption...is a powerful defensive weapon for free people. It offers a technical guarantee of privacy, regardless of who is running the government... It's hard to think of a more powerful, less dangerous tool for liberty. Esther Dyson
1111
ReliabilityReliability
No work is ever lost. No work is ever lost. No document is ever lost and no No document is ever lost and no
document ever gets corrupted.document ever gets corrupted. What backup and recovery What backup and recovery
strategies are in place? strategies are in place? How well is the physical How well is the physical
infrastructure (Data center) infrastructure (Data center) protected? Fire protection?protected? Fire protection?
There are only two kinds of computer users: those who have lost data in a crash, and those who will lose data in
a crash – Bob LeVitus
1212
AvailabilityAvailability What guarantees is the ASP willing to What guarantees is the ASP willing to
provide? provide? What down time are you willing to tolerate?What down time are you willing to tolerate? How can you find out? How can you find out? What happens when a server goes down? Is What happens when a server goes down? Is
there a backup?there a backup? What happens when there is a power What happens when there is a power
blackout? Is there backup power source?blackout? Is there backup power source? What happens if there is a network outage? What happens if there is a network outage?
Is there a backup?Is there a backup? Is there a backup data center?Is there a backup data center? Is there a disaster recovery plan?Is there a disaster recovery plan?
1313
AvailabilityAvailability# of hours of # of hours of downtimedowntime
FormulaFormula Uptime Uptime %age%age
5 5 minutes/yearminutes/year
(8760 – (8760 – 5/60)/87605/60)/8760
99.999 % 99.999 % [five 9s][five 9s]
1 hour/year1 hour/year 8759/87608759/8760 99.99 %99.99 %
52 52 hours/yearhours/year
(1 hr/week)(1 hr/week)
8708/87608708/8760 99.4%99.4%
# of hours per year = 365*24 = 8760
1414
ScalabilityScalability
What happens when there are more What happens when there are more users? More volume? How easy is it to users? More volume? How easy is it to upgrade infrastructure? upgrade infrastructure?
Does the company have the financial Does the company have the financial where with all to improve the where with all to improve the infrastructure? Sooner or later, infrastructure? Sooner or later, scalability means to add additional scalability means to add additional hardwarehardware..
Just as we could have rode into the sunset, along came the Internet, and it tripled the significance of the PC. Andy Grove
1515
EvolvabilityEvolvability How easy is it to upgrade? Can one How easy is it to upgrade? Can one
user be upgraded without user be upgraded without upgrading others? upgrading others?
What are the technological What are the technological underpinnings? underpinnings?
Are there automatic upgrades?Are there automatic upgrades? Solutions must be engineered to Solutions must be engineered to
continuously evolve and leverage continuously evolve and leverage the latest in internet technologies. the latest in internet technologies.
Whoever desires constant success must change his conduct with the times - Machiavelli
1616
PerformancePerformance What benchmarks are available?What benchmarks are available? Time to submit reports? Time to submit reports? Retrieve reports? Retrieve reports? Retrieve and sign? Retrieve and sign? Performance under heavy load? No Performance under heavy load? No
load? load? What is the degradation? What is the degradation? Is it acceptable to the user Is it acceptable to the user
community?community? Can you work off-line?Can you work off-line?
Technology is so much fun but we can drown in our technology. The fog of information can drive out knowledge. Daniel J. Boorstin
1717
SupportabilitySupportability
Can the user manage their own support Can the user manage their own support needs? Is it web-based? needs? Is it web-based?
What infrastructure support is What infrastructure support is available?available?
Is it 24x7, 365 days? How long does it Is it 24x7, 365 days? How long does it take to respond? take to respond?
Does it cause downtime to your work?Does it cause downtime to your work?
Computers shouldn't be unusable. You don't need to know how to work a telephone switch to make a phone call, or how to use the Hoover Dam to take a shower, or how to work a nuclear-power plant to turn on the lights. Scott McNealy
1818
MaintainabilityMaintainability Who is maintaining the software?Who is maintaining the software? How is maintenance and software How is maintenance and software
evolution managed?evolution managed? What is the technology basis that What is the technology basis that
facilitates maintenance?facilitates maintenance? Use of advanced component and Use of advanced component and
object-oriented technologies object-oriented technologies facilitates software maintenance facilitates software maintenance and evolution.and evolution.
Correct me if I'm wrong - the gizmo is connected to the flingflang connected to the watzis, watzis connected to the doo-dad connected to the ding dong. Patrick B. Oliphant
1919
InteroperabilityInteroperability
How easy is it interface to the How easy is it interface to the system?system?
Does it provide open APIs?Does it provide open APIs? Does it support XML-based data Does it support XML-based data
exchange? Document exchange? Document interchange?interchange?
Does it support HL7 standards?Does it support HL7 standards?
2020
Platform Platform
What is the platform used? What is the platform used? Is it Windows or Unix platform?Is it Windows or Unix platform? Does it support both leveraging Does it support both leveraging
the strengths of both the strengths of both platforms?platforms?
2121
Location IndependenceLocation Independence
Can users work from home?Can users work from home? Over low speed modem lines?Over low speed modem lines? Work in LAN, WAN Work in LAN, WAN
environments over secure environments over secure lines?lines?
Can they be mobile workers Can they be mobile workers using their PDAs?using their PDAs?
2222
Open StandardsOpen Standards
What standards are supported?What standards are supported? Internet standards: HTTP, XML, Internet standards: HTTP, XML,
Web services etc.Web services etc. Object Standards: CORBA, Object Standards: CORBA,
DCOMDCOM Healthcare standards: HL7Healthcare standards: HL7 Security Standards: PKI, SSLSecurity Standards: PKI, SSL
2323
Architecture ChoicesArchitecture Choices
Platform Choices – Microsoft, OMG, Platform Choices – Microsoft, OMG, Java, Web servicesJava, Web services
Off-premise, on-premise, edge Off-premise, on-premise, edge computing trade-offscomputing trade-offs
Thin vs. Thick clients. Trade-offs in Thin vs. Thick clients. Trade-offs in functionality, performance and functionality, performance and supportability.supportability.
The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency. Bill Gates
2424
Broad Requirements for Broad Requirements for Transcription IndustryTranscription Industry
Need to support the dictation and Need to support the dictation and document authoring processdocument authoring process
Need to support transcribing and Need to support transcribing and document creation processdocument creation process
Need to support the physician Need to support the physician review and sign-off processreview and sign-off process
Need to support the document Need to support the document distribution processdistribution process
2525
Broad Requirements for Broad Requirements for Transcription IndustryTranscription Industry
Hosting of Enterprise Hosting of Enterprise Transcription Solution for the Transcription Solution for the following types of customers:following types of customers:– HospitalsHospitals– Physician groupsPhysician groups– Transcription Service ProvidersTranscription Service Providers– Independent ContractorsIndependent Contractors
2626
Typical ASP Use Case ScenarioTypical ASP Use Case Scenario
TSP1
Hospitals/Clinics
S1
TSP2
TSP3
S2
S3
S4
S5
TranscriptionService Providers
Transcriptionists
Clinicians
2727
Implementation Alternatives Implementation Alternatives
Off-premise - hosted solution Off-premise - hosted solution – typically viewed as the ASP – typically viewed as the ASP modelmodel
Edge Computing Model – a Edge Computing Model – a hybrid model combining ASP hybrid model combining ASP and on-premise solutionand on-premise solution
On-premise solutionOn-premise solution
Choice of solution depends on organization’s goals and objectives
2828
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
2929
Platform ChoicesPlatform Choices
Platform StandardsPlatform Standards– Object Management Group (OMG) Object Management Group (OMG)
CORBA Infrastructure and approach CORBA Infrastructure and approach – Web services – the new kid on the blockWeb services – the new kid on the block
Other Popular PlatformsOther Popular Platforms– Sun J2EE PlatformSun J2EE Platform– Windows .NETWindows .NET
Host of other vendor platformsHost of other vendor platforms– OracleOracle– IBMIBM– IonaIona
3030
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
3131
CORBA Technology CORBA Technology OverviewOverview
Distributed Object Distributed Object InfrastructureInfrastructure
3232
Heterogeneity is PermanentHeterogeneity is Permanent Programming languagesProgramming languages
– ~3 million COBOL programmers~3 million COBOL programmers– ~1.6 million VB programmers~1.6 million VB programmers– ~1.1 million C/C++ programmers~1.1 million C/C++ programmers
Operating systemsOperating systems– Unix, MVS, VMS, MacOS, Windows (all 8!), Unix, MVS, VMS, MacOS, Windows (all 8!),
PalmOS…PalmOS…– Windows 3.1: it’s still out there!Windows 3.1: it’s still out there!– Embedded devices (mobile, set-top, etc.)Embedded devices (mobile, set-top, etc.)
NetworksNetworks– Ethernet, ATM, IP, SS7, Firewire, USBEthernet, ATM, IP, SS7, Firewire, USB– Bluetooth, 802.11b, HomeRFBluetooth, 802.11b, HomeRF
Courtesy: Richard Mark Soley, CEO & Chairman of OMG
3333
Where Can We Agree?Where Can We Agree? There will not be consensus on hardware platformsThere will not be consensus on hardware platforms There will not be consensus on operating systemsThere will not be consensus on operating systems There will not be consensus on network protocolsThere will not be consensus on network protocols There will not be consensus on programming There will not be consensus on programming
languageslanguages
There must be consensus on interfaces There must be consensus on interfaces and interoperability!and interoperability!
Courtesy: Richard Mark Soley, CEO & Chairman of OMG
3434
Who Are OMG?Who Are OMG?2AB
Alcatel
BEA
Borland
Boeing
CA
Citigroup
Ericsson
Ford
Fujitsu
Glaxo SmithKline
Hewlett Packard
Hitachi
Hyperion
IBM
IONA
io Software
Kabira
Kennedy Carter
LION Bioscience
Rational
SAP
SAS Institute
Siemens
Sony
Softeam
Sprint
Sun
Unisys
W3C
John Deere
Microsoft
MITRE
MSC.Software
NASA
NEC
NIST
NTT
OASIS
Oracle
Courtesy: Richard Mark Soley, CEO & Chairman of OMG
3535
Integration Technology - CORBAIntegration Technology - CORBA
– The Common Object Request The Common Object Request Broker Architecture is the standard Broker Architecture is the standard adopted by OMG as a framework adopted by OMG as a framework to provide common ORB services to provide common ORB services and interfaces to support portable and interfaces to support portable clients and services.clients and services.
– The Object Request Broker (ORB) The Object Request Broker (ORB) provides the mechanisms by which provides the mechanisms by which clients transparently make clients transparently make requests and receive responses. requests and receive responses.
3636
CORBA (continued)CORBA (continued)
Advantages offered by CORBA:Advantages offered by CORBA:– architecture independence (hardware architecture independence (hardware
and operating system independence)and operating system independence)– language independencelanguage independence– location independencelocation independence
The standard specifies the Interface The standard specifies the Interface Definition Language (IDL) - language Definition Language (IDL) - language used to describe the interfaces that used to describe the interfaces that client objects call and object client objects call and object implementations provide.implementations provide.
3737
CORBA Architecture – CORBA Architecture – Simple viewSimple view
ServersServers
ORB
C++JavaAda otherC C++JavaAda otherC
ClientsClients ServerServer
Client RequestsClient RequestsIDL-based
ServiceServiceIDL-based
3838
UML and Model Driven ArchitectureUML and Model Driven Architecture
UML provides higher level abstraction to UML provides higher level abstraction to software designsoftware design
By focusing on models, higher levels of By focusing on models, higher levels of interoperability can be achieved.interoperability can be achieved.
OMG’s MDA operationalizes this approach – OMG’s MDA operationalizes this approach – where models can be defined in UML but where models can be defined in UML but implemented using EJB, DCOM or implemented using EJB, DCOM or Webservices.Webservices.
3939
OMG Platform and ApproachOMG Platform and Approach
An approach that can be An approach that can be combined with any combined with any implementation considered.implementation considered.
Based on evolving technologies, Based on evolving technologies, standards and approaches.standards and approaches.
Provides an approach to Provides an approach to integrate with CORBA, EJB (JAVA integrate with CORBA, EJB (JAVA platform), .NET and Web platform), .NET and Web services.services.
4040
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
4141
Web Services - JargonWeb Services - Jargon
Basis – XML TechnologyBasis – XML Technology Web Services Description Language Web Services Description Language
(WSDL)(WSDL) Simple Object Access Protocol Simple Object Access Protocol
(SOAP)(SOAP) Universal Description, Discovery, Universal Description, Discovery,
and Integration (UDDI)and Integration (UDDI) Other elements – ebXML, SAML, Other elements – ebXML, SAML,
XKMS, X-KISS and a host of other XKMS, X-KISS and a host of other effortsefforts
4343
Emerging Importance of XMLEmerging Importance of XML
HTML-tagging is display oriented.HTML-tagging is display oriented. XML-based content tagging has important XML-based content tagging has important
uses:uses:– data miningdata mining– role-oriented display customizationrole-oriented display customization– intelligent searching and other value intelligent searching and other value
added elementsadded elements Wide spread industry support for this new Wide spread industry support for this new
open standardopen standard– MicrosoftMicrosoft– NetscapeNetscape– W3C is pushing the standardization W3C is pushing the standardization
effortsefforts Complementary technology to HTML-Complementary technology to HTML-
based web browsersbased web browsers
4444
Requirements best addressed by XMLRequirements best addressed by XML
Customizing front-end applications - Customizing front-end applications - easy presentation of what users want easy presentation of what users want to seeto see
Data miningData mining Synthesis type applications - Synthesis type applications -
combining multiple information combining multiple information sourcessources
Electronic commerce-type Electronic commerce-type applicationsapplications
Structured Data ExchangeStructured Data Exchange
4545
XML MarkupXML Markup
Elements and attributesElements and attributes Entity ReferencesEntity References CommentsComments Processing InstructionsProcessing Instructions Marked SectionsMarked Sections Document Type Definitions Document Type Definitions
(DTDs)(DTDs) Now, XML SchemasNow, XML Schemas
4646
ElementsElements
Bounded by start and end tagsBounded by start and end tags Sample markupSample markup
<Patient> <Patient> <FirstName> Frank</FirstName> <FirstName> Frank</FirstName> <LastName> Foster</LastName> <LastName> Foster</LastName>
</Patient></Patient> Patient, LastName, FirstName Patient, LastName, FirstName
are all entity tags.are all entity tags.
4747
AttributesAttributes
Name-value pairs included as part of Name-value pairs included as part of start tags.start tags.
Sample markupSample markup<APatient patientID=“123” FirstName=“Frank” <APatient patientID=“123” FirstName=“Frank”
LastName=“Foster”>LastName=“Foster”>
<Insurance> Blue Cross </Insurance><Insurance> Blue Cross </Insurance>
<Insurance> HMO </Insurance> <Insurance> HMO </Insurance>
</APatient></APatient>
FirstName and LastName in the example FirstName and LastName in the example above are attribute declarations.above are attribute declarations.
4848
Document Type DefinitionsDocument Type Definitions
Allows the expression of Allows the expression of constraints on tagsconstraints on tags
Defines sequencing and nesting Defines sequencing and nesting of tagsof tags
Defines attributes and values Defines attributes and values and defaultsand defaults
Allows specification of external Allows specification of external file referencesfile references
4949
XML SchemasXML Schemas
Replaces DTDsReplaces DTDs Is in XML format (DTD’s are Is in XML format (DTD’s are
not)not) Supports data typing (DTD’s Supports data typing (DTD’s
didn't)didn't) Schemas are extensibleSchemas are extensible XML Schemas – next XML Schemas – next
generation of DTDs.generation of DTDs. Wide industry supportWide industry support
5050
XML’s evolving family of standardsXML’s evolving family of standards
XML Linking Specification (XLL)XML Linking Specification (XLL) Resource Directory Framework (RDF)Resource Directory Framework (RDF) Style sheetsStyle sheets
– CSS Cascading Style sheetsCSS Cascading Style sheets– XSL - XML Style sheet Specification XSL - XML Style sheet Specification
LanguageLanguage Document Object Model (DOM)Document Object Model (DOM) XML SchemasXML Schemas Provides the basis for Web Services Provides the basis for Web Services
and Simple Object Access Protocol and Simple Object Access Protocol (SOAP)(SOAP)
5252
What is WSDLWhat is WSDL Web Services Definition LanguageWeb Services Definition Language It is equivalent of IDL for Web ServicesIt is equivalent of IDL for Web Services It is in XML Schema formatIt is in XML Schema format It defines an EXTENSIBLE framework for It defines an EXTENSIBLE framework for
specifying web services interfacesspecifying web services interfaces Developed originally by Microsoft and IBM Developed originally by Microsoft and IBM
and now being put through its paces in and now being put through its paces in W3C.W3C.
W3C working on Version 1.2 of WSDL right W3C working on Version 1.2 of WSDL right now (Fall 2003).now (Fall 2003).
5353
WSDL: What does it support?WSDL: What does it support?
Data type definitionsData type definitions Messages supportedMessages supported Operations supportedOperations supported Port type (an aggregation of Port type (an aggregation of
messages and operations)messages and operations) Binding (what protocol supports the Binding (what protocol supports the
service – ala SOAP)service – ala SOAP) Port – target address where service Port – target address where service
is availableis available Service – aggregation of port typesService – aggregation of port types
5454
WSDL ServiceWSDL Service
WSDL WSDL specifications are specifications are published in a published in a URL.URL.
Clients download Clients download this specification, this specification, pick a particular pick a particular protocol to protocol to communicate communicate with the service with the service (binding) and use (binding) and use that protocol.that protocol.
OperationOperation
Operation
BindingBindingBinding
Port Type
OperationOperation
Operation
BindingBindingBinding
Port Type
OperationOperation
Operation
BindingBindingBinding
Port Type
Web Service
5555
SOAP...SOAP...
It is a It is a SSimple imple PProtocol that allows rotocol that allows you to you to AAccess an ccess an OObject through bject through
the net.the net.Courtesy: Yan Liu, my student.
5656
SOAP MotivationsSOAP Motivations
Heterogeneous systems Heterogeneous systems mustmust be able be able to communicateto communicate
Binary protocols don’t always workBinary protocols don’t always work– CORBA, DCOM, etc. don’t work well through CORBA, DCOM, etc. don’t work well through
firewallsfirewalls– Nobody can agree on a standard binary format Nobody can agree on a standard binary format
(usually due to platform-related issues)(usually due to platform-related issues)– We’re dealing with many heterogeneous We’re dealing with many heterogeneous
environments (MVS, Unix, Windows NT, Linux, environments (MVS, Unix, Windows NT, Linux, PalmOS, etc.)PalmOS, etc.)
– Component runtimes differComponent runtimes differ– Security models differ (Kerberos, NTLM, OSF-DCE)Security models differ (Kerberos, NTLM, OSF-DCE)
Courtesy: Yan Liu, my student.
5757
What SOAP is...What SOAP is...
SOAP is a specification for defining...SOAP is a specification for defining...– an encoding style that uses XML to an encoding style that uses XML to
represent information graphsrepresent information graphs– a standard way to move XML with HTTPa standard way to move XML with HTTP– rules for passing messagesrules for passing messages– error (fault) definitionerror (fault) definition– a medium for performing Remote a medium for performing Remote
Procedure Calls (RPC)Procedure Calls (RPC)– one layer in a multi-layer architectureone layer in a multi-layer architecture
Courtesy: Yan Liu, my student.
5858
Courtesy: Yan Liu, my student.
SOAP Contains Four Parts:SOAP Contains Four Parts:
An extensible envelope expressing An extensible envelope expressing (mandatory)(mandatory)– whatwhat features and services are represented in a features and services are represented in a
message;message;– whowho should deal with them, should deal with them,– whetherwhether they are optional or mandatory. they are optional or mandatory.
A set of encoding rules for data A set of encoding rules for data (optional)(optional)– Exchange instances of application-defined data types Exchange instances of application-defined data types
and directed graphsand directed graphs– Uniform model for serializing abstract data models Uniform model for serializing abstract data models
that can not directly be expressed in XML schemathat can not directly be expressed in XML schema A Convention for representation RPC A Convention for representation RPC (optional)(optional)
– How to make calls and responsesHow to make calls and responses A protocol binding to A protocol binding to HTTPHTTP and and HTTP-EFHTTP-EF (optional)(optional)
5959
<Envelope>
<Header>
<transId>1234</transId>
</Header>
<Body>
<Add>
<a>3</a>
<b>4</b>
</Add>
</Body>
</Envelope>
c = Add(a, b)
Courtesy: Yan Liu, my student.
SOAP - Simple ExampleSOAP - Simple Example
6060
<<Envelope>Envelope> <Header><Header> <transId>1234</transId><transId>1234</transId> </Header></Header> <Body><Body> <Add><Add> <a>3</a><a>3</a> <b>4</b><b>4</b> </Add></Add> </Body></Body></Envelope></Envelope>
<<Envelope>Envelope> <Header><Header> <transId>1234</transId><transId>1234</transId> </Header></Header> <Body><Body> <AddResponse><AddResponse> <c>7</c><c>7</c> </AddResponse></AddResponse> </Body></Body></Envelope></Envelope>
Courtesy: Yan Liu, my student.
System Flow (HTTP)System Flow (HTTP)
6161
SOAP – Example from SOAP – Example from healthcarehealthcare
Example RequestExample Request
<soap:Envelope> <soap:Envelope>
<header> …. </header><header> …. </header>
<soap:Body> <soap:Body>
<GetName> <GetName>
<MR#>123456</MR#> <MR#>123456</MR#>
</GetName> </GetName>
</soap:Body> </soap:Body>
</soap:Envelope></soap:Envelope>
Example Example ResponseResponse
<soap:Envelope> <soap:Envelope> <header> …. </header><header> …. </header> <soap:Body> <soap:Body> <GetNameResponse> <GetNameResponse> <Name>John <Name>John
Doe</Name> Doe</Name> </GetNameResponse> </GetNameResponse> </soap:Body> </soap:Body> </soap:Envelope></soap:Envelope>
6262
Transport (e.g. HTTP)
Application
Envelope/Header/Body
TCP/IP
Message Encoding
Transport (e.g. HTTP)
Web Service
Envelope/Header/Body
TCP/IP
Message Encoding
Interface Semantics Interface Semantics
SOAP ExecutionSOAP Execution
Courtesy: Yan Liu, my student.
6363
SOAP – ConclusionsSOAP – Conclusions
Basis for Web servicesBasis for Web services Significant component of Significant component of
Microsoft’s .NET platformMicrosoft’s .NET platform Supported by everyoneSupported by everyone Has a strong futureHas a strong future
6464
Universal Universal Description, Description,
Discovery and Discovery and IntegrationIntegration
(UDDI)(UDDI)
6565
UDDI – What is it?UDDI – What is it?
A vehicle to locate operational A vehicle to locate operational web servicesweb services
Similar to Domain Name Similar to Domain Name Service (DNS) lookupService (DNS) lookup
Embodies the concepts of Embodies the concepts of “White Pages and Yellow “White Pages and Yellow Pages”.Pages”.
6666
UDDI ElementsUDDI Elements
White Pages: Business Name, White Pages: Business Name, Contact Info, DUNS etcContact Info, DUNS etc
Yellow Pages: Business Yellow Pages: Business categories, key-value pairs of categories, key-value pairs of relevant informationrelevant information
Green Pages: Technical Green Pages: Technical information on how to connect information on how to connect to web servicesto web services
6767
UDDI Process SupportedUDDI Process Supported
Business registers its web service Business registers its web service (information that put in white, yellow (information that put in white, yellow and green pages).and green pages).
The information gets propagated to The information gets propagated to all UDDI servers (replicated)all UDDI servers (replicated)
Customers contact known registriesCustomers contact known registries Locate appropriate service and Locate appropriate service and
invoke them.invoke them. Main protocol supported is SOAP.Main protocol supported is SOAP.
6868
Web Services Current StatusWeb Services Current Status
Evolving rapidly – strong support for Evolving rapidly – strong support for SOAP and WSDL has decent support.SOAP and WSDL has decent support.
UDDI is little further away.UDDI is little further away. All vendors are incorporating various All vendors are incorporating various
components of Web servicescomponents of Web services Web services is the future – right Web services is the future – right
now people have to deal with other now people have to deal with other component technologiescomponent technologies
6969
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
7171
J2EEApplication
Server
J2EE ArchitectureJ2EE Architecture
JAF
JavaMail
JMS
JDB
C
JTA
JND
I
RM
I/IIOP
Servlets JSPsTag
Library
Web Container
JAF
JavaMail
JMS
JDB
C
JTA
JND
I
RM
I/IIOP
EJB Container
SessionBeans
EntityBeans
RDBMS Mail ServerJava App.
CORBA Server
DirectoryService
Message Queue
XHTMLXML
Applet
ClientApp.
HTTP(S)
Reproduced with Permission from Java Server Programming J2EE Edition – Wrox Press, Ltd, 2000
7272
J2EE Platform ComponentsJ2EE Platform Components
JAXP 1.0 – Java API for JAXP 1.0 – Java API for XML ProcessingXML Processing
JDBC 3.0 – Java Data JDBC 3.0 – Java Data Base ConnectivityBase Connectivity
RMI over IIOPRMI over IIOP EJB 2.1 – Enterprise EJB 2.1 – Enterprise
Java BeansJava Beans Java Servlets 2.4Java Servlets 2.4 Java Server Pages 2.0Java Server Pages 2.0
Java Message Service 1.0Java Message Service 1.0 Java Naming and Java Naming and
Directory Interface (JNDI) Directory Interface (JNDI) 1.21.2
Java Transaction API 1.0Java Transaction API 1.0 JavaMail 1.1 J2EE JavaMail 1.1 J2EE
Connector Architecture Connector Architecture 1.01.0
Java Authentication and Java Authentication and Authorization Service 1.0Authorization Service 1.0
7373
J2EE PlatformJ2EE Platform
Strong and proven platformStrong and proven platform Evolving constantlyEvolving constantly Already supports various APIs Already supports various APIs
to develop and deploy web to develop and deploy web servicesservices
7474
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
7575
.NET Platform.NET PlatformClient App. Users
Web Services
WebForms
.NET Framework
HT
TP
SO
AP
UD
DI
OD
BC
DC
OM
.NE
T
Web serversWeb serversWeb serversWeb serversWeb servers.NET servers
7676
.NET Components.NET Components .NET framework.NET framework
– Common Language Runtime (CLR) Common Language Runtime (CLR) librarylibrary
– ActiveX Data Objects - (ADO.NET)ActiveX Data Objects - (ADO.NET)– Active Server Pages – (ASP.NET) and Active Server Pages – (ASP.NET) and
supports Web Services (UDDI, WSDL & supports Web Services (UDDI, WSDL & SOAP)SOAP)
– .NET Compact framework for PDAs.NET Compact framework for PDAs– .NET Remoting (RPC support).NET Remoting (RPC support)
Visual Studio .NETVisual Studio .NET– VB, C++, C#, Jscript… all compile to VB, C++, C#, Jscript… all compile to
MSIL (Microsoft Intermediate Language) MSIL (Microsoft Intermediate Language) and utilize CLR. and utilize CLR.
7777
.NET Framework.NET Framework
Microsoft’s big push to open Microsoft’s big push to open standards and support for XML-standards and support for XML-based solutionsbased solutions
Fully supports web services Fully supports web services approachapproach
Microsoft is an active participant in Microsoft is an active participant in W3C efforts and is a strong W3C efforts and is a strong proponent of standardization of web proponent of standardization of web services and related technologies. services and related technologies.
7878
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
7979
Security ConcernsSecurity Concerns
AuthenticationAuthentication Authorization and access controlAuthorization and access control Data IntegrityData Integrity Data ConfidentialityData Confidentiality Signing and non-repudiationSigning and non-repudiation Audit trailsAudit trails Virus protection and intrusion Virus protection and intrusion
detectiondetection
8080
Security TechnologiesSecurity Technologies
Hashing/digest creations – SHA, Hashing/digest creations – SHA, MD5MD5
Encryption – Symmetric - DESEncryption – Symmetric - DES Encryption – Asymmetric - PKIEncryption – Asymmetric - PKI Digital SignaturesDigital Signatures Trust and Public Key CertificatesTrust and Public Key Certificates Secure Socket Layer (SSL)Secure Socket Layer (SSL) Smartcards, Biometrics (Thumb Smartcards, Biometrics (Thumb
prints, retinal prints, voice prints)prints, retinal prints, voice prints)
8181
XML and SecurityXML and Security
XML SignatureXML Signature XML EncryptionXML Encryption Security Assertion Markup Security Assertion Markup
Language (SAML)Language (SAML) XKMS – XML Key Management XKMS – XML Key Management
SpecificationsSpecifications X-KISS – XML – Key Information X-KISS – XML – Key Information
Service SpecificationService Specification X-KRSS - XML Key Registration X-KRSS - XML Key Registration
Service SpecificationService Specification
8282
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
8383
Communication TechnologiesCommunication Technologies
EthernetEthernet WirelessWireless
– GSMGSM– CDMA/TDMACDMA/TDMA
BroadbandBroadband– DSLDSL– CableCable
8484
Broadband technologiesBroadband technologies
High bandwidth internet High bandwidth internet connectionconnection
Always on – no need to Always on – no need to explicitly establish connectionexplicitly establish connection
Supports audio, video in Supports audio, video in addition to data connectivityaddition to data connectivity
Typically downstream Typically downstream bandwidth is a lot higher than bandwidth is a lot higher than upstream bandwidth.upstream bandwidth.
8585
BandwidthBandwidth
OptionsOptions– DSLDSL– Cable ModemCable Modem
Check out how much bandwidth Check out how much bandwidth you have from your broadband you have from your broadband provider!provider!
http://www.toast.net/performance/http://www.toast.net/performance/
http://www.dslreports.com/stesthttp://www.dslreports.com/stest
8686
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
8787
Storage RequirementsStorage Requirements
A microcosm of ASP A microcosm of ASP requirementsrequirements
Storage technologies has to Storage technologies has to address these issues:address these issues:– AvailabilityAvailability– ReliabilityReliability– ScalabilityScalability– PerformancePerformance– SecuritySecurity
8888
Storage TechnologiesStorage Technologies RAID technology – primarily to address RAID technology – primarily to address
reliability and performance issuesreliability and performance issues Storage Area Networks (SAN) and Storage Area Networks (SAN) and
Network Attached Storage (NAS) – Network Attached Storage (NAS) – primarily to address scalability and primarily to address scalability and availability issuesavailability issues
SAN – to increase the storage capacity SAN – to increase the storage capacity of a server (say a database server)of a server (say a database server)
NAS – to increase the storage capacity NAS – to increase the storage capacity of file servers on the network.of file servers on the network.
8989
What is RAID?What is RAID?
RRedundant edundant AArray of rray of IInexpensive/nexpensive/IIndependent ndependent DDisksisks
Can be implemented in software Can be implemented in software or hardwareor hardware
9090
RAID configurationsRAID configurations RAID0 striping RAID0 striping Simple striping of data Simple striping of data
across all the disks in an array. Improves across all the disks in an array. Improves load balancing and performance. Does not load balancing and performance. Does not provide redundancy. provide redundancy.
Total capacity = Individual Disk capacity * number of Total capacity = Individual Disk capacity * number of disks in arraydisks in array
RAID1 mirroring RAID1 mirroring Mirroring of data in Mirroring of data in multiple disks. Provides redundancy.multiple disks. Provides redundancy.
Total capacity = Individual Disk capacity * (number of Total capacity = Individual Disk capacity * (number of disks in array/2)disks in array/2)
RAID0+1 RAID0+1 Where RAID0 and 1 strategies Where RAID0 and 1 strategies are combined to provide high performance are combined to provide high performance and reliability.and reliability.
9191
RAID configurationsRAID configurations
RAID 5 RAID 5 Use of Error Correction Use of Error Correction Codes to increase capacity in RAID Codes to increase capacity in RAID arrays. arrays.
Total capacity = Individual Disk capacity * (n-Total capacity = Individual Disk capacity * (n-1) where n is number of disks in array1) where n is number of disks in array
Higher disk capacity. Good for small reads Higher disk capacity. Good for small reads and bad for writes.and bad for writes.
Can recover from any one disk failure.Can recover from any one disk failure.
RAID 6 RAID 6 same as RAID 5 but can same as RAID 5 but can tolerate two disk failures.tolerate two disk failures.
9393
Storage Technology HighlightsStorage Technology Highlights
Rapidly evolving fieldRapidly evolving field Major players for enterprise Major players for enterprise
storage include: EMC, storage include: EMC, Network Appliance, Inc.Network Appliance, Inc.
Microsoft a recent entry to the Microsoft a recent entry to the market place with their market place with their Windows Storage Server 2003Windows Storage Server 2003
9494
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
9595
Introduction to Introduction to Healthcare StandardsHealthcare Standards
Standards, standards everywhere and not one of any use - Anonymous
9696
Messaging & Object StandardsMessaging & Object Standards
HL7HL7 OMG Healthcare Task ForceOMG Healthcare Task Force
9898
HL7 MessagingHL7 Messaging
Established Standards Body Established Standards Body (1987)(1987)
ANSI accredited (1994)ANSI accredited (1994) Over 1700 membersOver 1700 members Key effortsKey efforts
– HL7 CDA (XML documents) EffortHL7 CDA (XML documents) Effort– HL7 CCOWHL7 CCOW– HL7 EHR EffortHL7 EHR Effort
9999
HL7 PhilosophyHL7 Philosophy
Designed as a protocol for Designed as a protocol for exchange of healthcare and exchange of healthcare and related informationrelated information
Based on an event-based Based on an event-based transactional model that mirrors transactional model that mirrors real-life use-case scenariosreal-life use-case scenarios
100100
HL7 Version EvolutionHL7 Version Evolution Produced Version 1.0 late in 1987Produced Version 1.0 late in 1987 Produced Version 2.0 late in 1988Produced Version 2.0 late in 1988 Version 3.0 effort underway for a Version 3.0 effort underway for a
whilewhile Clinical Document Architecture Clinical Document Architecture
(CDA) effort – release 1 Nov 2000 (CDA) effort – release 1 Nov 2000 & CDA release 2 passed in & CDA release 2 passed in committee ballot – Sept 2003committee ballot – Sept 2003
Clinical Context Effort (CCOW)Clinical Context Effort (CCOW) Electronic Health Record (EHR) Electronic Health Record (EHR)
Functional Model (NHII initiative)Functional Model (NHII initiative)
101101
HL7 Message StructureHL7 Message Structure Messages in HL7 are defined by:Messages in HL7 are defined by:
– A message ID (a 3 letter code - e.g.. A message ID (a 3 letter code - e.g.. ADT for Admit, Discharge, Transfer ADT for Admit, Discharge, Transfer related messages)related messages)
– One or more segments (logical One or more segments (logical grouping - e.g. PID segment to grouping - e.g. PID segment to represent patient identifying represent patient identifying information)information)
– Nesting and repetition of segments Nesting and repetition of segments as appropriateas appropriate
– ““Z” segments for custom useZ” segments for custom use
104104
HL7 Clinical HL7 Clinical Context Object Context Object Working Group Working Group
(CCOW)(CCOW)
105105
Clinical Context Object Working Clinical Context Object Working Group (CCOW)Group (CCOW)
Focus is the visual Focus is the visual integration of diverse integration of diverse applications in the users applications in the users desktop.desktop.
106106
CCOWCCOW Technology neutral specifications for Technology neutral specifications for
healthcare applications to switch healthcare applications to switch contexts seamlessly - oriented contexts seamlessly - oriented towards making multiple Graphical towards making multiple Graphical User Interface clients to work togetherUser Interface clients to work together
Already have interoperable Already have interoperable specifications and implementationsspecifications and implementations
Currently working on an interoperable Currently working on an interoperable single-sign-on specificationsingle-sign-on specification
107107
The Provider's Workstation
““Visual” IntegrationVisual” Integration
“Data” Integration
The Clinical Applications
Server
Server
ServerVisual
Integration
* Acknowledgement: Slide provided by Wes Rishel, Gartner Group
The Provider
108108
Context ManagerContext Manager
Patient ID
Mapper
Context
Manager
Master Patient IndexGeneral Hospital
University Physicians
O'Donnell 3222111 2344444Furlow -- 6731123Crane 582233 --
O'Donnell2234444
University Physicians
O'Donnell3222111
General Hospital
O’Donnell 2234444Furlow 6731123
O’Donnell 3222111Crane 58233
* Acknowledgement: Slide provided by Wes Rishel
109109
CCOW Current WorkCCOW Current Work
Single sign-on: Single sign-on: – users do not have to memorize many users do not have to memorize many
user names and passwordsuser names and passwords– authentication via password, badge authentication via password, badge
swipe, biometricsswipe, biometrics Web-based applicationsWeb-based applications
* Acknowledgement: Slide provided by Wes Rishel
110110
HL7 SummaryHL7 Summary Version 3.0 Reference Information Model - Version 3.0 Reference Information Model -
effort underway to specify it in XMLeffort underway to specify it in XML Interoperability Demonstration using XML Interoperability Demonstration using XML
and HL7 RIM models have happened since and HL7 RIM models have happened since HIMSS 99.HIMSS 99.
HL7 CDA effort has taken root and will HL7 CDA effort has taken root and will impact the transcription industry.impact the transcription industry.
HL7 CCOW has made significant inroads.HL7 CCOW has made significant inroads. EHR effort is ground breaking and is lead EHR effort is ground breaking and is lead
by the Dept. of Health and Human Services by the Dept. of Health and Human Services as part of the NHIIas part of the NHII
111111
HL7 ReferencesHL7 References
–HL7: Health Level 7: HL7: Health Level 7: http://www.hl7.org/http://www.hl7.org/
113113
CORBAmedCORBAmed
The Healthcare Domain Task The Healthcare Domain Task Force (DTF) of the Object Force (DTF) of the Object Management Group (OMG)Management Group (OMG)
Acknowledgement: Courtesy Tim Brinson, 2AB Inc. & CORBAmed
115115
CORBAmed within the OMA
CORBAservices
Horizontal CORBAfacilities
FinancialObjects
TransprtationObjects
E-CommerceObjects
HealthcareObjects
TelecomObjects
ManufctringObjects
Acc
ou
nti
ng
Ban
kin
g
Insu
ran
ce
PD
M
DO
MA
IN F
RA
ME
WO
RK
S
Tel
e N
etw
k M
gm
t
Sh
op
Flo
or
Au
to
ER
P
LQ
S
PID
S
Tel
e S
ervi
ces
Str
eam
Co
ntr
ol
EC
Ser
vice
s
E-P
aym
ent
CO
AS
Mar
ine
Rai
l
Off
er L
oc/
Tra
de
Inte
rmo
dal
CORBA
Acknowledgement: Courtesy Tim Brinson, 2AB Inc. & CORBAmed
116116
SyllabusSyllabus
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– .Net Platform.Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage Storage AdvancesAdvances
Healthcare Healthcare StandardsStandards
Sample SystemsSample Systems
117117
ASP Examples in Transcription ASP Examples in Transcription IndustryIndustry
CompanyCompany ReferenceReference
MedQuistMedQuist Medquist.comMedquist.com
TotaleMedTotaleMed Totalemed.comTotalemed.com
MDinTouchMDinTouch Mdintouch.comMdintouch.com
VianettaVianetta Vianetta.comVianetta.com
MedremoteMedremote Medremote.comMedremote.com
Disclosure: TotaleMed is a customer of MedQuist’s Careflow product solution
118118
ConclusionConclusion
What is an ASPWhat is an ASP ASP RequirementsASP Requirements Platform ChoicesPlatform Choices
– OMG ApproachOMG Approach– Web ServicesWeb Services– Java PlatformJava Platform– ..Net Platform Net Platform
Security Security TechnologiesTechnologies
Communication Communication TechnologiesTechnologies
Storage AdvancesStorage Advances Healthcare Healthcare
StandardsStandards Sample SystemsSample Systems
119119
GlossaryGlossary MD5 - Message Digest 5MD5 - Message Digest 5 SHA - Secure Hashing SHA - Secure Hashing
AlgorithmAlgorithm NTLM Authentication protocolNTLM Authentication protocol DES - Data Encryption DES - Data Encryption
StandardStandard HTTP-EF - HTTP Extension HTTP-EF - HTTP Extension
FrameworkFramework XKMS - XML Key Management XKMS - XML Key Management
ServicesServices X-KISS - XML - Key X-KISS - XML - Key
Information Service Information Service SpecificationSpecification
SAML - Security Access SAML - Security Access Markup LanguageMarkup Language
WSDL - Web Services WSDL - Web Services Description LanguageDescription Language
IDL - Interface Definition IDL - Interface Definition LanguageLanguage
UML - Unified Modelling UML - Unified Modelling LanguageLanguage
SOAP - Simple Object SOAP - Simple Object Access ProtocolAccess Protocol
UDDI - Universal UDDI - Universal Description, Discovery and Description, Discovery and IntegrationIntegration
120120
Questions?Questions?
Slides will be posted at: Slides will be posted at: www.medquist.comwww.medquist.com after the show.after the show.
You can contact me at: You can contact me at: [email protected]@lanierhealthcare.com