1 / 44

InterSystems Caché bij de TU/e

InterSystems Caché bij de TU/e. Marleen Vandervelden, Johan Kenens InterSystems Corporation. Agenda. Inleiding Historiek Post-relational database Caché Applicatie-ontwikkeling met Caché Demo’s Q&A. Historiek = M(UMPS).

Download Presentation

InterSystems Caché bij de TU/e

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 hospitalMulti 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-DimensionalStorage Manager = Geoptimaliseerd voor performantie = Opslag van complexe datastructuren

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

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

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

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

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

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

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

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

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

  15. CachéSQL interface CachéObject interface Dictionary Multi-DimensionalStorage Manager Platforms 3. Platforms • Database = 1 uitwisselbaar physisch bestand

  16. Caché Platforms Platform 32-Bit 64-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. Tools en standaarden (zie RAD) CachéSQL interface CachéObjects Dictionary Multi-DimensionalStorage Manager Platforms 4. Tools and standaarden

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

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

  20. Optimized for Repetitive“simple” requests Infrequentcomplex queries Users Many Few Database Dynamic Static Divided World of Database TransactionProcessing BusinessIntelligence The Wall

  21. Caché Bit Map Indices • 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 Encapsulation Inheritance Polymorphism

  24. Objects / Relational Mismatch UserInterface Traditional Database Logic Objects Objects Tables Expensive Transformation

  25. Objects in the Database UserInterface CachéDatabase Logic Objects Objects Objects Consistent Representation End to End

  26. CachéObjectScript Basic Virtual Machine Data & Objects Database Scripting Any developer that knows VB knows Caché

  27. UML Composition (One to One) /// 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; } /// 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; }

  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 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 ]; } /// 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; }

  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 Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship Employees As Employee [ Cardinality = many, Inverse = Department ]; Property deptCode As %String; Property deptName As %String; } 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; }

  32. UML Association (Relations = RI) (2)(Parent - Children = Cascaded delete) 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; } 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; }

  33. Tools en standaarden CachéSQL interface CachéObjects Dictionary Multi-DimensionalStorage Manager Platforms 4. Tools and standaarden

  34. .NET COM Java C++ CachéObjects Multi-DimensionalStorage Manager Caché Object Connectivity High-performance links to all major object architectures

  35. Web Server ASP .Net JSP J2EE Caché CSP Caché for Web Applications • Native connectivity to all major Web development technologies • CSP for optimized development speed and scalability +

  36. Caché Server Pages WebPageObjects Code { Based Development } • High performance compiled objects • Single box to n-tier deployment withno modification Compiler < Tag Based Development >

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

  38. Caché XML Bi-directional conversionbetween objects andmultiple XML formats EJB C++ XML Java COM CachéObjects Multi-DimensionalStorage Manager

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

  40. Your applications Native link .Net JDBC ODBC Your Web applications XML EJB C++ Java COM J2EE CachéSQL interface CachéObjects Web Server CSP SOAP Others’ Applications Dictionary Multi-DimensionalStorage Manager SQL Gateway MQ Series Gateway COM Gateway Caché

  41. Demo’s Deel 3

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

  43. Q&A

  44. Deel 4 UML Association (Zonder RI)(Referentiële integriteit via callback methods/methods) 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; } Class Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property manager As Employee [ Required ]; Property deptCode As %String; Property deptName As %String; }

More Related