A UML-based Architectural Framework for Web-based Information - - PowerPoint PPT Presentation

a uml based architectural framework for web based
SMART_READER_LITE
LIVE PREVIEW

A UML-based Architectural Framework for Web-based Information - - PowerPoint PPT Presentation

A UML-based Architectural Framework for Web-based Information Systems Egil P.Andersen Norwegian Computing Center P.O.Box 114, Blindern, 0314 Oslo, Norway Tel: +47 22 85 25 94, Fax: +47 22 69 76 60 Egil.Paulin.Andersen@nr.no 1 Norsk


slide-1
SLIDE 1

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 1

A UML-based Architectural Framework for Web-based Information Systems

Egil P.Andersen Norwegian Computing Center P.O.Box 114, Blindern, 0314 Oslo, Norway Tel: +47 22 85 25 94, Fax: +47 22 69 76 60 Egil.Paulin.Andersen@nr.no

slide-2
SLIDE 2

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 2

Distributed Information Systems - SynEx and SINAI

Distributed Information Systems play a key role in the business of many companies and organisations. They may need an ability to manage and maintain business information from several heterogeneous information sources, where authorised users can access and share this information with few constraints as to where they are located geographically, and sometimes also the equipment they are required to possess. Web-based information systems - provide access to information from "anywhere" to "anyone". SynEx - Synergy on the Extranet To support continuity of care between organisations, and make relevant patient information readily available, there is a growing trend towards shared care. Synapses and SynEx are EU projects which aims to provide healthcare professionals with seamless access to patient records and related information, where different record parts may reside in different EPR information systems, nationally or internationally. The ultimate goal for electronic patient records is to provide complete access to any part of any record to any authorised healthcare professional in a secure way. SINAI Healthcare information systems are open and generic - the kind of information they must be able to manage is not fully known at design-time. They evolve over time and must be designed for this. SINAI is a UML-based architectural framework for web-based information systems. It supports the development of web-based generic and extendable distributed information systems, but without being generic itself; i.e., it allows for domain-specific specialisation, customisation and optimisation. It also supports seamless integration of information from heterogeneous data sources and legacy systems.

slide-3
SLIDE 3

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 3

SynEx - Technical Architecture

Oslo Synapses Server

client/server technology independence

Client-side integration

  • f distributed

healthcare records

SynEx Client

http Application specific Application independent

Offline Client-side Application components XML Parser Cache Manager GUI Data Provider Cache

any web browser Simple Client

HTML SynExML/ XSL XML formatted request MTS - Microsoft Transaction Server

DB interface (TSQL Stored Procedures) SynExML generation

OSS Oslo Synapses Server SQL Server DB (healthcare records)

(Visual C++/ATL)

OSSCOM- ServerVC (stateless, COM, dll)

SynEx XSL SynExML DTD various plain HTML pages HTML

IIS - Internet Information Server

web server interface - session information

ASP - Active Server Pages

(VBScript) (Visual C++/ATL)

OSSWeb- ServerVC (stateless, COM, dll) OSSSession- ManagerVC (stateful, COM, dll)

Data Layer Application Layer Web Server Layer

O L E D B

Data Independence Layer

DCOM http

SynEx Client: ActiveX components in Internet Explorer Request/Response: XML over http Oslo Synapses Server: IIS/ASP on Win/NT and COM components under MTS

slide-4
SLIDE 4

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 4

Seamless Integration of Distributed Electronic Patient Records

SynExML formatted health record information

SynEx Client

IE5 - Internet Explorer 5 document browser

DB 1

Synapses Server A

Geneva

Geneva Synapses Server

London

London Synapses Server

Dublin

Dublin Synapses Server

DB 2 DB n

Oslo

Synapses Server B Synapses Server C

database distribution application distribution client-side integration ("client distribution")

Open issue - long-term distribution?

slide-5
SLIDE 5

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 5

Seamless Integration of Distributed Electronic Patient Records (cont.)

slide-6
SLIDE 6

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 6

SynExML and XML over http (e.g. SOAP)

SynExML XML has the power to become the independent data exchange format of the future. An XML DTD, SynExML (SynEx Markup Language), was defined for inter-site exchange of EPR (Electronic Patient Record) information; i.e., the basis for semantic interoperability between SynEx components w.r.t. EPR information. XML over http (e.g. SOAP) Communication between a client and a server can be formatted as XML over http both ways (e.g. according to the SOAP (Simple Object Access Protocol) specification). There are several advantages by this:

  • http is a simple protocol with good coverage and few demands on the client

XML, as strings, are well-suited for transmission via http

  • Most firewalls are readily configured for common security options dealing with well known

internet protocols and ports. This as opposed to e.g. DCOM or CORBA protocols (IIOP). In practice, the ability for remote machines to interact via DCOM and IIOP is more limited. DCOM and IIOP can be well-suited for computers within e.g. a limited area, but not between "any" remote client and server on the internet.

  • XML over http makes the underlying client- and server-side technology transparent to each other.

E.g. the Oslo EPR server is Microsoft based while the Dublin server uses Apache with CGI scripts.

  • XML is likely to be well-suited for mobile clients; e.g. WML is XML.
  • There are numerous software tools and systems with good support for XML.
slide-7
SLIDE 7

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 7

http GET command (QueryString) http://citroen.nr.no/synexdemo/oss.asp?<OSSrequest> <Function Name=”RecordInfo"> <Arg Name="User">onordmann</Arg> <Arg Name=”RecordID">{C7910C91....0000}</Arg> <Arg Name=”Retrieval">shape</Arg> <Arg Name="ResponseType">html</Arg> </Function> </OSSrequest>

XML over http (cont.)

slide-8
SLIDE 8

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 8

What is the role of XML?

XML DOM

(Document Object Model)

  • bject structure

XML DOM

(Document Object Model)

  • bject structure

transfer XML string

<?xml version="1.0"?> <SynExML Source="Oslo"> <Document Name="User_Access" RCID="10"> <DataItem Name="HomeItem" Cluster="26"> ...... </DataItem> </Document> </SynExML>

What is XML? The essential characteristic of XML - XML can be "morphed" from a string of text into a structure of objects, and vice versa.

  • Well-suited format for technology independent information transfer - a string

Particularly between "any" web client and a server

  • Most platforms can support XML as strings
  • When creating or receiving an XML string it can be accessed and operated upon as any other kind
  • f object structure, with an interface of functions, and also supporting events.
slide-9
SLIDE 9

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 9

What is the role of XML? (cont.)

What is XML not? XML is not a modelling language and should not be used as such. For example - it was a very time-consuming process in SynEx for every partner to agree on a common XML format. Many changes were made along the way, and more are to be expected, and for each change XML parsing code had to be changed. SINAI - proper modelling methods should be used for information modelling XML schema "explosion" - a general problem If every small group or business sets out to define its own XML schema, this will lead to an "explosion" in the number of non-interoperable schemas and standardisation will be jeopardised. Making changes in XML parsing code can be expensive; i.e., it is too much to expect that XML schema specific code will be fully encapsulated so that changes due to future standardisation can be confined and implemented with little cost. BizTalk, OASIS and XML.ORG are all initiatives to support XML schema repositories where organisations can publish their XML schemas for the purpose of sharing XML formats and develop industry standards. SINAI - XML purely a technical means for communication - a single XML format

slide-10
SLIDE 10

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 10

Standardised use of XML based on UML

To assure meaningful client-server communication they need a common understanding regarding which requests can be made by the client, and what kind of information will be returned from the server. This can be based on meta-information about UML models; i.e., XML transferred between clients and servers can use a single XML schema, with two major sub-schemes:

  • information on object instances of a UML model(actual object relationships, attribute values, etc)
  • r UML model information (meta-information - classes, structural and behavioural properties, etc)
  • how to invoke object methods/functions according to a UML model

A client receives not only information on a particular structure of objects, but also their business rules, their methods, etc. Application developers will be presented with object models and object interfaces that adhere to SINAI defined UML conventions - both when manifested as XML or IDL component interfaces. A unified way of working with objects made according to models that may well be very domain specific. Benefits:

  • Foundation for client-server common understanding remains the same regardless of model changes
  • Client-server communication infrastructure remains unchanged
  • Information and application integration -

different systems adhere to the same conventions regarding their structural and behavioural properties and interfaces (XML and IDL component interfaces) Projects like SynEx can focus more on conceptual issues and less on technology and platform

slide-11
SLIDE 11

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 11

Generic and Extendable Information Systems

Sharing and seamless integration of distributed electronic patient record - but for their shapes only! ”Shallow” integration

Record Folder Doc. Doc. Doc. Doc. Doc. Doc. Doc. Doc. Doc. Record Record Folder Folder Folder Folder Folder Folder

SiA Oslo RH Oslo Dublin

? ? ? ? ? ? ? ?

”Deep” integration

Record Folder Doc. Doc. Doc. Doc. Doc. Doc. Doc. Doc. Doc. Record Record Folder Folder Folder Folder Folder Folder

SiA Oslo RH Oslo Dublin

EPR documents can be considered dynamically extendable sets of site-specific and standardised models in combination. We need to extend and integrate domain specific models in a manner that cannot be foreseen at design time. Healthcare information systems are open and generic - the kind of information they must be able to manage is not fully known at design-time. They evolve over time and must be designed for this.

slide-12
SLIDE 12

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 12

Generic and Extendable Information Systems (cont.)

SINAI: Not large, monolithic (unmanageable...) UML models, e.g. for different projects or domains. Numerous “micro” models (role models - see below) for different areas of concern. Models can be distributed, integrated and reused in a seamless manner regardless of origin. Hypothesis: for electronic patient records, a separate model can be made of its "record shape and hyperlink" structure (e.g. nested tree-structures with local or remote hyperlinks); separate models are made for various kinds of record content (parts of medical documents); other models for authorisation and access control, presentations (various devices), and so on. Typical situation SINAI

Company Company Company

UML model

Project/ Domain

UML model UML model UML model UML model UML model UML model

Company Company Company

UML model Role model Composition

slide-13
SLIDE 13

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 13

The SINAI Unified Role Model for Distributed Information Models

Censor Supervisor Exam- author Lecturer Person subject

  • bject id

(GUID) role instances Student Person

A SINAI based system will have many of the characteristics of a generic system, but without being generic itself - it will not predominantly consist of generic software components. It will consist of dynamically composable units of information, and dynamically configurable application components. A SINAI data layer is defined by a set of information models that each

  • ffer roles that can be instantiated

into role instances and dynamically composed into persistent, stateful information objects ("subjects"). Information objects can "play" different roles during their lifetime. When an object starts playing a role its properties are added to the object, and when it stops playing it, its properties are removed; i.e., object properties are defined by current roles played. Thus roles allow for objects to dynamically acquire new properties, and later release them.

ElementaryRole Name : String * 1..* Function Name : String ReturnType : String FunctionArgument Name : String DataType : String InOutCode : Short * 1 RoleContainment IsMandatory : Boolean +1..* Association +1 Model Name : String Prefix : String MajorVersion : Short MinorVersion : Short MicroVersion : Short 1 * UniquenessConstraint * 1..* * CompositeRole Name : String 1..* 1 1..* * 1 +Sub * +Super * +Base * +Derived *

…and a number of business rules

IsAbstract : Boolean

Information Model for SINAI Unified Role Model

slide-14
SLIDE 14

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 14

Basic concepts

The SINAI Unified Role Model for Distributed Information Models (cont.)

SINAI role models are an extension of a subset of UML Class Diagrams - can use UML notation; e.g.

Association Elementary Roles Composite Role Uniqueness constraint

borrower lender date amount

  • bject

name

  • bject

address

is drawn

borrower lender date amount

  • bject

name

  • bject

address

Person String Date Money

borrower lender

Person name : String address : String …functions... Loan date : Date amount : Money …functions...

1 1 * *

Role Inheritance Dynamic role play and role constraints

ExamAuthor Lecturer Supervisor Censor Person role dependencies super-role sub-role

is equivalent to

b q

B Q A P

a p

AB P

a p b q

Q AB role inheritance base-role derived role ’ Role creation refOID = CreateObject() ’return GUID ……... refCensor = CreateCensor(refOID)

slide-15
SLIDE 15

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 15

The SINAI Unified Role Model for Distributed Information Models (cont.)

Inheritance and association subtype relationships (the main difference from NIAM/ORM) n’ary associations for e.g. multi-dimensional arrays

  • wner

day hour entry

Student Hour String Day

Visual Basic: refStudent.FindDay(”Tuesday”).FindHour(”17.30”).SetEntry = ”math” strEntry = refStudent.FindDay(”Tuesday”).FindHour(”17.30”).GetEntry Role inheritance is different from role dependencies. When inheriting - for subtype related associations - only the most specific association is inherited.

A problem in COM IDL - function returntypes are ”occupied”...

student course student course

Student Law Student Comp.Sc Student Law&C.S. Student Course Law Course Comp.Sc Course has 1 association has 1 association has 1 association has 2 associations

LawStudent (C.S.Stud. same) does not inherit the Student association since it has itself a more specific association.

student course

(many-to-many) (a student has one course) (many-to-many)

slide-16
SLIDE 16

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 16

SINAI Information Models vs Application Models

applies to

Information models (defining roles) Application models (defining application components)

applies to applies to

SINAI Information Models define stateful objects residing on persistent storage. Their their interfaces contain functions for creating, removing, updating and retrieving role instances. The data layer implementation of these functions handle information specific, but application independent, constraints. SINAI Application Models are service-oriented (e.g. originating from Use Cases) - concerns a particular set of related services that can be applied to particular information models. Application layer objects are mostly "stateless" objects as required for scalability and good performance in large-scale information systems. Component interfaces defined by both information and application models will be model specific - no generic interfaces. Hence manual customisation and modification is possible at the level of individual, model specific functions - e.g. complex business rules usually require non-trivial manual intervention at a detailed, model specific level PS: Conceptual work remains on SINAI application models

slide-17
SLIDE 17

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 17

Standardised SINAI Architectures

SINAI models can be used to generate parts of the model specific server code - and ("fat") client side components => saves some coding, and more standardised (product line) architectures

MetaModel of SINAI Information Models

(authoritative info. modelsource) stored procedure interface Database Schema database tables, keys, etc

OLE DB wrapper classes (if Win /NT platform) IDL specification

SINAI Models (e.g. Rose, Visio, …)

SINAI Information Models SINAI Application Models

MetaModel of SINAI Application Models MetaModel of Relational Database Schema some SINAI information model some SINAI application model

SINAI Databases Generated Code save generate

Application Metamodel Database Information Metamodel Database RDB Schema Metamodel Database some Information Model Database (authoritative app.modelsource)

save

g e n e r a t e

compute (1) generate (2) compute & generate (1,2)

”fat” client cache IDL + implementation IDL specification server application layer IDL + code shell IDL specification ”fat” client application IDL + code shell IDL specification

generate i m p l e m e n t s

slide-18
SLIDE 18

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 18 ProcedureArgument ArgumentName : String(80) DataType : String(80) IsOutput : Boolean StoredProcedure ProcedureName : String(80) ReturnsRecord : Boolean BodyText : Text * 1 +argument * +owner 1 View ViewName : String(80) ViewCondition : String(255) DBSchema SchemaName : String(30) SchemaPrefix : String(10) MajorVersion : Short MinorVersion : Short MicroVersion : Short 1 * +owner 1 +procedure * * 1 +view * +owner 1 Index IsClustered : Boolean IsUnique : Boolean DBKey KeyName : String(80) ForeignKey UniqueKey IsPrimary : Boolean * 1 +fkey * +target 1 Table TableName : String(80) 0..1 * +view 0..1 +table * * 1 +table * +owner 1 1 * +table 1 +column * 1 * +owner 1 +dbkey * Column ColumnName : String(80) DataType : String(80) IsNull : Boolean * 1 +column * +owner 1 0..1 * +dbkey 0..1 +column * * 0..1 +column * +index 0..1

Standardised SINAI Architectures (cont.)

Metamodel of Relational Database Schema (an information model)

slide-19
SLIDE 19

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 19

Standardised SINAI Architectures (cont.)

stored procedure interface Database

Some typical ”fat” client-server scenarios. ”Thinner” clients imply more processing on the server. Notice the distinction between ”read” vs ”write” interfaces (operations) for transaction handling.

XML

  • ver

http RI - Read Interface WI - Write Interface Check in/check out style Client Server Application Layer Server Data Layer Long, optimistic transaction style server application component server DB cache XML files XML files XML files client app. comp. client app. comp. client cache (off/online) client cache (off/online) update cache RI WI RI DB write control WI WI RI WI WI refresh cache client write control load save load load check-in w r i t e generate save check-out transfer f e t c h

write request (e.g. multi- statement long opt.trans.) convert XML to/from cache convert XML to/from cache

Network generate

slide-20
SLIDE 20

Norsk Regnesentral / Norwegian Computing Center ICSSEA 2000, December 2000 20

Summary

SynEx With state-of-the-art internet technology it is relatively simple, technically, to achieve sharing and seamless integration of distributed electronic patient record shapes (record structure). Patient records are quite complex information entities. Their documents can be considered dynamically extendable sets of site-specific and standardised models in combination. We need to extend and integrate domain specific models in a manner that cannot be foreseen at design time. A pure, generic solution has proven insufficient/too complex. SINAI The SINAI project aims to demonstrate that

  • UML can be used to achieve a basic common understanding between parties involved

(clients, servers, components, applications) that makes it easier to achieve integration and interoperability of information and applications.

  • UML can be used to standardise the use of XML and avoid XML schema "explosion".
  • Code generation from UML models can be used to achieve more standardised architectures

(at least for a particular product line).

  • Model and component integration via the combined use of role modelling techniques and

component technology can be used to support the development of generic and extendable information systems.