Advanced Distributed Software Architectures and Technology group ADSaT 1 Microsoft Middleware Technology Paul Greenfield ADSaT CSIRO.

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

Symantec 2010 Windows 7 Migration Global Results.
Zhongxing Telecom Pakistan (Pvt.) Ltd
1
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 2 Getting Started.
Distributed Systems Architectures
Chapter 7 Constructors and Other Tools. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-2 Learning Objectives Constructors Definitions.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
Processes and Operating Systems
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
Using RMI–IIOP in the Development of Distributed Applications Dr. P.G.Sarang, President & ABCOM Information Systems Private. Limited.,
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
1 Hyades Command Routing Message flow and data translation.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination. Introduction to the Business.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
Microsoft Access 2007 Advanced Level. © Cheltenham Courseware Pty. Ltd. Slide No 2 Forms Customisation.
Properties of Real Numbers CommutativeAssociativeDistributive Identity + × Inverse + ×
Process a Customer Chapter 2. Process a Customer 2-2 Objectives Understand what defines a Customer Learn how to check for an existing Customer Learn how.
Custom Statutory Programs Chapter 3. Customary Statutory Programs and Titles 3-2 Objectives Add Local Statutory Programs Create Customer Application For.
Custom Services and Training Provider Details Chapter 4.
Applicable for Persons Registered under Article 10
1 Advanced Tools for Account Searches and Portfolios Dawn Gamache Cindy Bylander.
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
Alexey Miroshnikov InfoStroy Ltd. Locatioin: St.Petersburg, Russia Established: 1990 APL: since 1979 First APL conference: 1990, Copenhagen People: 42+
© Tally Solutions Pvt. Ltd. All Rights Reserved Shoper 9 License Management December 09.
Break Time Remaining 10:00.
Figure 12–1 Basic computer block diagram.
Lesson 6: Configuring Servers for Remote Management
Analyzing Transactions
Table 12.1: Cash Flows to a Cash and Carry Trading Strategy.
ETS4 - What's new? - How to start? - Any questions?
PP Test Review Sections 6-1 to 6-6
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
Bellwork Do the following problem on a ½ sheet of paper and turn in.
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
Exarte Bezoek aan de Mediacampus Bachelor in de grafische en digitale media April 2014.
Sample Service Screenshots Enterprise Cloud Service 11.3.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1 RA III - Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Buenos Aires, Argentina, 25 – 27 October 2006 Status of observing programmes in RA.
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
CONTROL VISION Set-up. Step 1 Step 2 Step 3 Step 5 Step 4.
Adding Up In Chunks.
Chapter 9: The Client/Server Database Environment
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
2004 EBSCO Publishing Presentation on EBSCOadmin.
Subtraction: Adding UP
Equal or Not. Equal or Not
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
Systems Analysis and Design in a Changing World, Fifth Edition
Types of selection structures
1 Insight into World View Tunneling See Doc in TNG Getting Started Guide Appendix G Revised August 14 th 2003.
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
Essential Cell Biology
PSSA Preparation.
The DDS Benchmarking Environment James Edmondson Vanderbilt University Nashville, TN.
Immunobiology: The Immune System in Health & Disease Sixth Edition
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 13 - Exception Handling Outline 13.1 Introduction 13.2 Exception-Handling Overview 13.3 Other.
Physics for Scientists & Engineers, 3rd Edition
Energy Generation in Mitochondria and Chlorplasts
Introduction Peter Dolog dolog [at] cs [dot] aau [dot] dk Intelligent Web and Information Systems September 9, 2010.
Advanced Distributed Software Architectures and Technology group ADSaT 1 Scalability & Availability Paul Greenfield CSIRO.
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Presentation transcript:

Advanced Distributed Software Architectures and Technology group ADSaT 1 Microsoft Middleware Technology Paul Greenfield ADSaT CSIRO

Advanced Distributed Software Architectures and Technology group ADSaT 2 COM, MTS & COM+ An evolving component technology –Components not objects –Designed for practical code re-use –COM for local components –DCOM for remote components –MTS for transactional components –COM+ integrating and extending MTS –ActiveX and OLE for adding confusion

Advanced Distributed Software Architectures and Technology group ADSaT 3 COM Just one Component Object Model Language-neutral, binary model –Use any language to write components VB, C++, Java, Delphi, C, Perl, … –Call from any language, inc. scripts Components are … –Reusable software building blocks –Defined, contracted, stable behaviour

Advanced Distributed Software Architectures and Technology group ADSaT 4 COM Interfaces Components implement interfaces –Interfaces define behaviour –Components have multiple interfaces –Clients only access interfaces Not objects and no access to internals –Interfaces are immutable Should be defined once and never changed Give stability in distributed systems –Polymorphism through interfaces No class inheritance in COM itself

Advanced Distributed Software Architectures and Technology group ADSaT 5 Component Example Kangaroo component class Supports Hopping and Eating behaviour Dim BigHopper as IHop Dim BigEater as IEat Set BigHopper = new CKangaroo Set BigEater = BigRed BigHopper.Hop “over log” BigEater.Graze “grass”

Advanced Distributed Software Architectures and Technology group ADSaT 6 COM Run-time COM objects can be in … –A library (DLL) ‘in-process server’ –A separate program ‘out-of-process’ Objects accessed through stubs and proxies

Advanced Distributed Software Architectures and Technology group ADSaT 7 Distributed COM Took COM into distributed computing –Exactly the same programming model –Components can be remote

Advanced Distributed Software Architectures and Technology group ADSaT 8 COM/DCOM Practicalities How does a client find a server? –Through the registry on the client Registry set up when client app installed –No ‘name server’ … until COM+ Are there really libraries of COM components that can be re-used? –Office, Visio, SAP, ActiveX controls, … Much additional flexibility –And subsequent (seeming) complexity…

Advanced Distributed Software Architectures and Technology group ADSaT 9 Building COM Code Good tool support –MS C++ with MFC/ATL, VB, J++, Delphi, … –Templates, wizards and run-times –Compilers know about components and their interfaces

Advanced Distributed Software Architectures and Technology group ADSaT 10 Moving from the Desktop Addressing the enterprise market –Challenging mainframes and UNIX –Addressing questions of availability, scalability, integrity, security –Keep ease of programming and admin Build enterprise apps in VB? Avoid need for complex tuning and admin Response was MTS –Brought transactions to COM

Advanced Distributed Software Architectures and Technology group ADSaT 11 MS Application Model Windows DNA –Three tier architecture –Client layer Web based using scripting (ASP) Traditional client applications –Business logic layer Transactional business components –Data access layer Components enforce data integrity

Advanced Distributed Software Architectures and Technology group ADSaT 12 Application Layers Order component Customer component Payment component Order component Goods component Stock component Delivery component MTSMTS DCOM/COMDCOM/COM Web server Scripted Web pages Business Logic Layer Data Access Layer Client Access Layer User interface app Print invoicesPrint ship requests Background processes

Advanced Distributed Software Architectures and Technology group ADSaT 13 MTS and Transactions MTS added transactions to COM –Simple programming model Write code as if it was all that was running on the system COM/MTS will ensure isolation Minimal coding changes needed –add commit/abort –Full ACID properties Using XA-compliant databases etc Full support for distributed transactions

Advanced Distributed Software Architectures and Technology group ADSaT 14 MTS Programming Encourages stateless programming –Methods are complete business transactions –Transaction starts when method called and ends when it returns –No state left on server after method returns, except in databases… Other models possible –Client controlled transactions –Stateful objects

Advanced Distributed Software Architectures and Technology group ADSaT 15 MTS and Server Objects MTS deletes server objects when transaction commits –Client still thinks it has a server object –Server object created anew if needed ‘Just-in-time activation’ Makes it impossible to keep state in server objects and so violate ACID properties –Reduces resource usage on server –Server objects recycled in COM+

Advanced Distributed Software Architectures and Technology group ADSaT 16 MTS Architecture Application ‘packages’ –Collection of libraries (DLLs) –Each package has its own server process Multiple threads within each process Failing application code isolated Can also run application code ‘in-line’ –Method calls run on threads No tuning parameters Low overhead No binding from client to thread

Advanced Distributed Software Architectures and Technology group ADSaT 17 MTS Architecture MTS Process Application Packages Clients

Advanced Distributed Software Architectures and Technology group ADSaT 18 MTS Administration

Advanced Distributed Software Architectures and Technology group ADSaT 19 MTS Security COM security based on NT security –ACLs on components, interfaces, … –Based on users and groups MTS has role-based security –Rights assigned to ‘roles’ ‘manager’, ‘clerk’, ‘teller’, … Access to interfaces, packages, … Separates security policy from admin –Roles assigned to users and groups

Advanced Distributed Software Architectures and Technology group ADSaT 20 MTS Performance Stateless transactional applications –Minimal server resources used Database connection pooling –ODBC and OLE DB Method calls run on any thread –Minimal waiting unlike some OTMs –No tuning or rebinding needed

Advanced Distributed Software Architectures and Technology group ADSaT 21 MTS Performance Stock on-line application –Both application and SQL/Server database running on Dell 2x 400MHz Pentium II with 512MB –Application coded in … C++ (ODBC), Visual Basic (ADO), J++ (ADO) –Two versions Using Keytable (heavy database locking) Using Identity (avoids contention on Keytable)

Advanced Distributed Software Architectures and Technology group ADSaT 22 C++ Sample STDMETHODIMP CStocks::UpdateAccount(long subAccNo, long sCredit) { HRESULT hr = S_OK; SubscriberAccount sub ; hr = sub.Update(subAccNo, sCredit) ; if (m_spObjectContext) if FAILED(hr) m_spObjectContext->SetAbort(); else m_spObjectContext->SetComplete(); return hr; }

Advanced Distributed Software Architectures and Technology group ADSaT 23 C++ Sample HRESULT SubscriberAccount::Update(long pAccNo, long pCredit) { HRESULT hr; SQLHENV henv= NULL; SQLHDBC hdbc= NULL; SQLHSTMT hstmt= NULL; hr = GetSQLHandles(henv, hdbc, hstmt); if (FAILED(hr)) return hr;// ODBC handle allocations failed RETCODE retCode; SDWORD cbNumLen = 0, cbNTS = SQL_NTS ; SQLCHAR stmt [MAX_STMT_LEN] ; sprintf ((CHAR *) stmt, "UPDATE SUBACCOUNT SET SUB_CREDIT = %ld WHERE SUB_ACCNO = %ld", pCredit, pAccNo ); retCode = SQLExecDirect ( hstmt, stmt, SQL_NTS ) ; if (retCode != SQL_SUCCESS && retCode != SQL_SUCCESS_WITH_INFO) return error("SubAccount Update", henv, hdbc, hstmt); ReleaseSQLHandles(henv, hdbc, hstmt); return S_OK; }

Advanced Distributed Software Architectures and Technology group ADSaT 24 VB Sample Public Sub update(pAccNo As Long, pCredit As Long) On Error GoTo ErrorHandler Dim conn As New ADODB.Connection Dim cmd As New ADODB.Command conn.Open DSNString Set cmd.ActiveConnection = conn cmd.CommandText = "update SubAccount set sub_credit=" & _ pCredit & " where sub_accno=" & pAccNo cmd.Execute conn.Close Set conn = Nothing GetObjectContext.SetComplete Exit Sub ErrorHandler:.... Err.Raise Err.Number,, Err.Description GetObjectContext.SetAbort End Sub

Advanced Distributed Software Architectures and Technology group ADSaT 25 MTS Performance

Advanced Distributed Software Architectures and Technology group ADSaT 26 MTS Performance How many clients can be supported? –2 second average response time –No wait time between requests –Application and database on same box VB Keytable 200 clients VB Identity 300 clients C++ Keytable 350 clients C++ Identity 500 clients

Advanced Distributed Software Architectures and Technology group ADSaT 27 MTS Response Times

Advanced Distributed Software Architectures and Technology group ADSaT 28 MTS Performance Performance limited by processor Run with remote database –Doubles available processor power –Needs 100M LAN Results for C++ and Identity –800 clients with 2 sec response time –430tps

Advanced Distributed Software Architectures and Technology group ADSaT 29 MTS Performance

Advanced Distributed Software Architectures and Technology group ADSaT 30 MTS Scalability Good up to the capacity of the box –$20,000 of hardware will support 800 concurrent clients – thousands of users But what if we want to support tens of thousands of very active users? –Bigger boxes – scale up Commodity 8x servers, Itanium, GHz chips Proprietary SMP boxes – Unisys, Sequent,.. –More boxes – scale out Share workload over many servers

Advanced Distributed Software Architectures and Technology group ADSaT 31 Scale Out Stateless, transactional applications –No binding between clients and servers –Transactions can go to any server Need load balancing support to share workload over available servers –Web server-based –Write-your-own –COM+ load balancing coming soon Moved to Windows 2000 Application Server

Advanced Distributed Software Architectures and Technology group ADSaT 32 Integration Integrating with non-COM/MTS code –COMTI for full integration with CICS servers –Support for CICS clients expected –Bridges between COM, CORBA, EJB, …

Advanced Distributed Software Architectures and Technology group ADSaT 33 Sample System

Advanced Distributed Software Architectures and Technology group ADSaT 34 COM+ The Windows 2000 version of COM –Features of MTS folded back into mainstream COM and extended –COM GUI administration tool –Asynchronous method calls –Load balancing –Publish-subscribe events –Compensating resource manager –Object pooling –Performance improvements

Advanced Distributed Software Architectures and Technology group ADSaT 35 COM+ Administration

Advanced Distributed Software Architectures and Technology group ADSaT 36 COM+ Features Asynchronous methods –Client can call method and continue –Method call turned in queued message –Uses MSMQ (Microsoft Message Queue) Compensating Resource Managers –Allow use of non-transactional resources within a transaction –Write code to back out changes Called if transaction aborts

Advanced Distributed Software Architectures and Technology group ADSaT 37 COM+ Features Publish/Subscribe –Event-based programming model –Publish events and subscribers notified Use of Windows 2000 features –Reduced use of registry –Use of Active directory to find servers –Use of standard Windows Installer

Advanced Distributed Software Architectures and Technology group ADSaT 38 COM+ Load Balancing Scale-out by spreading workload over multiple computer systems –Router knows what servers are available and how busy they are –Client calls router to find a server –Client gets component reference and calls methods as normal –Router only involved at component creation time no overhead on calls

Advanced Distributed Software Architectures and Technology group ADSaT 39 COM+ Component Load Balancing Client Response time tracker Router Create object Call object’s methods Pass request to server Create object and pass back reference COM + CLB balancing load across multiple systems

Advanced Distributed Software Architectures and Technology group ADSaT 40 COM+ Performance Object Pooling –Server-side objects are pooled and recycled on activation Lowers cost of object creation/activation Dynamic thread pool –Adjusts no. of server threads with load Faster but still evaluating how much –Good improvements so far –Tests hitting limits on database server Expect improvements with Win2K db server

Advanced Distributed Software Architectures and Technology group ADSaT 41 COM+ Performance

Advanced Distributed Software Architectures and Technology group ADSaT 42 COM+ Performance

Advanced Distributed Software Architectures and Technology group ADSaT 43 COM+ Performance

Advanced Distributed Software Architectures and Technology group ADSaT 44 COM+ Performance Ported application MTS -> COM+ –Reduced application processor usage –300tps, 600 users with local db –400tps, 800 users with remote db Object pooling –Pool objects rather than connections –400tps, 800 users with local db –450tps, 900 users with remote db

Advanced Distributed Software Architectures and Technology group ADSaT 45 TPCC Performance? TPCC figures for Windows 2000, COM+ and SQL/Server 2000 –Top 2 places on TPCC performance list 227,000 TPMC – 96 processors - $19/tpmc 152,000 TPMC – 64 processors - $19/tpmc ‘shared nothing’ partitioned database –Then UNIX boxes About 135,000 TPMC at $50 - $100+ /tpmc

Advanced Distributed Software Architectures and Technology group ADSaT 46 MTS and COM+ Microsoft’s transactional middleware –Good tool integration for ease of use C++, VB, Java – coding, debugging –Performance good and getting better –Very scalable for the right applications Scale-up limited compared to UNIX? Scale-out requires right architectures –Good value for money… Comes as part of NT and Windows 2000