Presentation is loading. Please wait.

Presentation is loading. Please wait.

InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation.

Similar presentations


Presentation on theme: "InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation."— Presentation transcript:

1 InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation

2 Agenda  Inleiding  Historiek  Post-relational database Caché  Applicatie-ontwikkeling met Caché  Demo’s  Q&A

3 Historiek = M(UMPS)  M(UMPS) (mid ’60) (Masschusetts general hospital Multi Utility Programming System)  ANSI standaard (einde ’70)  Ontstaan van M implementaties (DSM, DTM)  Enkel nog gecommercialiseerd en geevolueerd door InterSystems -------------------------------------------------------------------------  Programmeertaal  Data opslag in Globals (boomstructuur)

4 Post-relational database Caché Deel 1

5 1. De storage manager Multi-Dimensional Storage Manager = Geoptimaliseerd voor performantie = Opslag van complexe datastructuren

6 Complexe data-structuur: ^Globals Set ^Global = “fruit” fruit ^Global = ^Global gedraagt zich als een gewone type-less variable…

7 (2) peer Complexe data-structuur: ^Globals Set ^Global(1) = “appel” Set ^Global(2) = “peer” ^Global = (1) appel ^Global = (1) appel

8 (aantal) 45 set ^Global(2, “aantal”) = 45 Subscripts zijn eveneens untyped, en kunnen ook tekst (en dus data !) zijn … ^Global = (1) appel (2) peer

9 set ^Global(2, “naam”) = “Jefke” Subscripts zijn eveneens untyped, en kunnen ook tekst (en dus data !) zijn … ^Global = (aantal) 45 (1) appel (2) peer (naam) Jefke

10 vb. Set ^Global(2, “leverancier”) = “Fruit&co” ^Global = (leveranc.) Fruit&co … (1) appel (2) peer … Global subscripts zijn ook sparse…

11 Set ^Global(2, “leverancier”, “adres”, “straat”) = “perziklaan” Global subscripts zijn ook sparse… ( ) … (adr.) (abc) ( ) … (lev...) ( ) … ^Global = ( ) … (2) …(2) …(2) …(2) … (str.) = perziklaan

12 $Data(2, “leverancier) = 11 $Data(2, “leverancier”, “adres”) = 10 Global subscripts zijn ook sparse… ( ) … (adr.) (abc) ( ) … (lev...) ( ) … ^Global = ( ) … (2) …(2) …(2) …(2) … (str.) = perziklaan

13 ^Globals: een n-dimensionele ruimte ^Global naam adres aantal leverancier 1 2 straat = “appel” = “peer” = 45 =“Fruit&co” = “Jefke” = Ø = “perziklaan”

14 2. Unified Data Architecture (UDA) Multi-Dimensional Storage Manager Caché Object interface  1 dictionary voor 2 access paths  Automatische projectie van definities in beide richtingen.  Geen supplementaire laag voor O/R mapping Caché SQL interface Dictionary

15 3. Platforms Multi-Dimensional Storage Manager Caché Object interface Caché SQL interface DictionaryDictionary Platforms   Database = 1 uitwisselbaar physisch bestand

16 Caché Platforms Platform32-Bit64-Bit  Alpha / OpenVMS   Alpha / Tru64 Unix   AViiON   HP    IBM P Series    Linux (Red Hat & SuSE)   Sun Solaris (SPARC)   Sun Solaris (Intel)   Windows 95, 98, ME, NT, 2000, XP   Apple MACOS X (aangekondigd) 

17 4. Tools and standaarden Multi-Dimensional Storage Manager Caché Objects Caché SQL interface DictionaryDictionary PlatformsPlatforms Tools en standaarden (zie RAD)

18 5. Integratie mogelijkheden InterSystems Caché COM Gateway SQL Gateway MQ Series Gateway Bestaande Windows applicaties (Word, Excel,...) Bestaande DB Informix Informix Sybase Sybase Oracle Oracle Elke ODBC Elke ODBC Bericht gebaseerde applicaties

19 Ensemble InterSystems Ensemble Business Service Business Process Business Operation Modeling (Studio) Adapter Message Queue (Caché) Message Transformation SAP – SIEBEL – FILE -....

20 Divided World of Database Transaction Processing Business Intelligence Optimized for Repetitive “simple” requests Infrequent complex queries UsersManyFew DatabaseDynamicStatic The Wall

21 Caché Bit Map Indices In a bit-map index, a property of a class is described by a string of bits In a bit-map index, a property of a class is described by a string of bits

22 Applicatie-ontwikkeling met Caché Deel 2

23 Object georienteerde omgeving PolymorphismEncapsulationInheritance

24 Objects / Relational Mismatch User Interface Logic TraditionalDatabase ObjectsObjectsTables Expensive Transformation

25 Objects in the Database User Interface Logic Caché Database ObjectsObjectsObjects Consistent Representation End to End

26 Database Scripting Caché Object Script BasicBasic Virtual Machine Data & Objects Any developer that knows VB knows Caché

27 UML Composition (One to One) /// This is the contained class in the composition /// and should be of type "serial" Class Address Extends %SerialObject [ ClassType = serial, ProcedureBlock ] { Property city As %String; Property number As %String; Property street As %String; Property zip As %String; } /// This is the container class in the composition Class Person Extends %Persistent [ ClassType = persistent, ProcedureBlock,] { Property firstName As %String; Property lastName As %String; /// The container contains an Address, the Address /// class in embedded in the Person class Property personAddress As Address; }

28 Serial embedded in %Persistent set adr = ##class(Address).%New()// Create an Address object set adr.street = “Kippenlaan“// Populate street set adr.number = “24“// Populate number set adr.city = “Vilvoorde“// Populate city set adr.zip = “1800“// Populate zip set per = ##class(Person).%New()// Create a Person object set per.firstName = “Jean-luc“// Populate firstName set per.lastName = “Dehaene” // Populate lastName set per.personAddress = adr// Populate personAddress do per.%Save()// Save the Person object

29 UML Composition (One to Many) /// This is the contained class in the composition /// and should be of type "serial" Class Address Extends %SerialObject [ ClassType = serial, ProcedureBlock ] { Property city As %String; Property number As %String; Property street As %String; Property zip As %String; } /// This is the container class in the composition Class Person Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property firstName As %String; Property lastName As %String; /// The container contains Addresses, the Addresses /// are embedded in the Person class as a /// ListOfObjects class Property personAddresses As Address [ Collection = list ]; }

30 Collection embedded in %Persistent set list = ##class(%Library.ListOfObjects).%New()// Create a collection of objects set adr1 = ##class(Address).%New()// Create a first new Address object set adr2 = ##class(Address).%New()// Create a second new Address object set adr1.street = "Acaciastraat“// Populate first Address object set adr1.number = "20“// … set adr1.city = "Brussel“// … set adr1.zip = "1000“// … set adr2.street = "Jozef Plateaustraat“// Populate second Address object set adr2.number = "24“// … set adr2.city = "Gent“// … set adr2.zip = "9000“// … do list.Insert(adr1)// Insert first Address in the collection do list.Insert(adr2)// Insert first Address in the collection set per = ##class(Composition0toN.Person).%New()// Create a new Person object set per.firstName = "Freya“// Populate the Person object set per.lastName = "Vandenbossche“// … set per.personAddresses = list// Populate the collection do per.%Save() // Save the person object

31 UML Association (Relations = RI) (1) (One to Many = Restrict delete) Class Employee Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship Department As Department [ Cardinality = one, Inverse = Employees ]; Index employeeDepartmentIndex On Department; Property firstName As %String; Property hireDate As %Library.Date; Property lastName As %String; } Class Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship Employees As Employee [ Cardinality = many, Inverse = Department ]; Property deptCode As %String; Property deptName As %String; }

32 UML Association (Relations = RI) (2) (Parent - Children = Cascaded delete) Class ParentChild.InvoiceLine Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship invoice As ParentChild.Invoice [ Cardinality = parent, Inverse = invoiceLines ]; Property taxRate As %Float; Property units As %Integer; } Class Invoice Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship invoiceLines As ParentChild.InvoiceLine [ Cardinality = children, Inverse = invoice ]; Property invoiceDate As %Date; Property invoiceDescription As %String; Property invoiceNr As %String; }

33 4. Tools and standaarden Multi-Dimensional Storage Manager Caché Objects Caché SQL interface DictionaryDictionary PlatformsPlatforms Tools en standaarden

34 Caché Object Connectivity C++C++ JavaJavaCOMCOM Caché Objects Multi-Dimensional Storage Manager. NET High-performance links to all major object architectures

35 Caché for Web Applications Native connectivity to all major Web development technologies Native connectivity to all major Web development technologies CSP for optimized development speed and scalability CSP for optimized development speed and scalability ASP.NetASP.NetJSPJ2EEJSPJ2EE CachéCaché CSPCSP Web Server +

36 Web Page Objects CompilerCompiler Caché Server Pages High performance compiled objects High performance compiled objects Single box to n-tier deployment with no modification Single box to n-tier deployment with no modification Code { Based Development } Code { Based Development } < Tag Based Development > < Tag Based Development >

37 Caché & Java CachéCaché Java App. App.ServerApp.Server EJBEJB Object + SQL “Classic” Java and J2EE “Classic” Java and J2EE Simultaneous object and relational access Simultaneous object and relational access

38 Caché XML XMLXML Caché Objects Multi-Dimensional Storage Manager EJBEJBC++C++ JavaJavaCOMCOM Bi-directional conversion between objects and multiple XML formats

39 Caché Web Services High performance Web Service for any Caché method High performance Web Service for any Caché method No middleware No middleware CachéCaché Any Caché Class Web Service Adaptor Web Server SOAP WSDL

40 Caché Multi-Dimensional Storage Manager Caché SQL interface Your applications Caché Objects DictionaryDictionary XMLXML EJBEJB C++C++ JavaJava COMCOM ODBCODBC JDBCJDBC NativelinkNativelink.Net.Net J2EEJ2EE CSPCSP Web Server SOAPSOAP Others’ Applications Your Web applications COM Gateway SQL Gateway MQ Series Gateway

41 Demo’s Deel 3

42 Demo’s  Populate  XML  SOAP  Documentatie generatie  Bitmap indexen ...(op aanvraag)...

43 Q&A

44 UML Association (Zonder RI) (Referentiële integriteit via callback methods/methods) Class Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property manager As Employee [ Required ]; Property deptCode As %String; Property deptName As %String; } Class Employee Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property manages As Department [ Required ] Property firstName As %String; Property hireDate As %Library.Date; Property lastName As %String; } Deel 4


Download ppt "InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation."

Similar presentations


Ads by Google