SlideShare a Scribd company logo
(Ebook) Component Software: Beyond Object-
Oriented Programming by Szyperski C., Murer S.
ISBN 9780201675207, 020167520X download
https://ebooknice.com/product/component-software-beyond-object-
oriented-programming-1004904
Explore and download more ebooks at ebooknice.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James
ISBN 9781459699816, 9781743365571, 9781925268492, 1459699815,
1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374
(Ebook) Object-Oriented Software Design in C++ by welcome.html
https://ebooknice.com/product/object-oriented-software-design-
in-c-53739670
(Ebook) Object-Oriented Programming with Swift 2 by Gastón C. Hillar
https://ebooknice.com/product/object-oriented-programming-with-
swift-2-50199752
(Ebook) Object Oriented Programming using Java by Kendal S. ISBN
9788776815011, 8776815013
https://ebooknice.com/product/object-oriented-programming-using-
java-1131714
(Ebook) Beginning C# Object-Oriented Programming by Dan Clark ISBN
9781430249368, 1430249366
https://ebooknice.com/product/beginning-c-object-oriented-
programming-43034554
(Ebook) Beginning C# Object-Oriented Programming by Dan Clark ISBN
9781430249351, 1430249358
https://ebooknice.com/product/beginning-c-object-oriented-
programming-34505758
(Ebook) Object Oriented Programming in C++ by E. Balagurusamy ISBN
9780071072830, 0071072837
https://ebooknice.com/product/object-oriented-programming-
in-c-33057582
(Ebook) Object-oriented programming in C++ by Lafore, Robert ISBN
9780672323089, 0672323087
https://ebooknice.com/product/object-oriented-programming-
in-c-21984516
(Ebook) Object Oriented Programming With C++ by E. Balagurusamy ISBN
9780070669079, 0070669074
https://ebooknice.com/product/object-oriented-programming-
with-c-33727398
(Ebook) Component Software: Beyond Object-Oriented Programming by Szyperski C., Murer S. ISBN 9780201675207, 020167520X
(Ebook) Component Software: Beyond Object-Oriented Programming by Szyperski C., Murer S. ISBN 9780201675207, 020167520X
Component Software
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page i
The Addison-Wesley Component Software Series
Clemens Szyperski, Series Editor
The Addison-Wesley Component Software Series collects key contributions that help architects,
CTOs, project managers, technologists, component developers, component assemblers, and
system integrators to embrace and understand the diverse field of component software. Taking its
ingredients from the core areas of object technology, software architecture, software process
management, and others, component software as a discipline is a unique synthesis. At the
intersection of technology and market forces, the series covers the concepts of component
software and the business case, tried and tested methods and processes, practical success stories,
and lessons learned, current technologies, boundary integration technologies, leading commercial
component products, and their backing business modes.
Publications in the series are selected based on both their applicability and their visionary strength,
yielding both immediate and long-term value for the reader.
P. Allen, Realizing eBusiness with Components
C. Atkinson, Component-based Product Line Engineering with UML
J. Cheeseman and J. Daniels, UML Components: A Simple Process for Specifying Component-based
Software
K. Whitehead, Component-based Development: Principles and Planning for Business Systems
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page ii
Component Software
Beyond Object-Oriented Programming
Second Edition
CLEMENS SZYPERSKI
with
DOMINIK GRUNTZ and STEPHAN MURER
An imprint of PEARSON EDUCATION
London · Boston · Indianapolis · New York · Mexico City · Toronto
Sydney · Tokyo · Singapore · Hong Kong · Cape Town · New Delhi
Madrid · Paris · Amsterdam · Munich · Milan · Stockholm
acm
acm
P R E S S
ACM Press
New York
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page iii
PEARSON EDUCATION LIMITED
Head Office:
Edinburgh Gate
Harlow CM20 2JE
Tel: +44 (0)1279 623623
Fax: +44 (0)1279 431059
London Office:
128 Long Acre
London WC2E 9AN
Tel: +44 (0)20 7447 2000
Fax: +44 (0)20 7447 2170
Website: www.it-minds.com
www.awprofessional.com
© Pearson Education Limited 1999, 2002
First published in Great Britain 1999
Second edition published in Great Britain in 2002
The right of Clemens Szyperski to be identified as the Author of this Work has been asserted by
him in accordance with the Copyright, Designs and Patents Act 1988.
ISBN 0-201-74572-0 2nd edition
(ISBN 0-201-17888-5 1st edition)
British Library Cataloguing in Publication Data
A CIP catalogue record for this book can be obtained from the British Library.
Library of Congress Cataloging in Publication Data
Applied for.
All rights reserved; no part of this publication may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, electronic, mechanical, photocopying, recording or
otherwise, without either the prior written permission of the Publishers or a licence permitting
restricted copying in the United Kingdom issued by the Copyright Licensing Agency Ltd,
90 Tottenham Court Road, London W1P 4LP. This book may not be lent, resold, hired out or
otherwise disposed of by way of trade in any form of binding or cover other than that in which it
is published, without the prior consent of the Publishers.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Pearson Education Limited has made every attempt to supply trademark
information about manufacturers and their products mentioned in this book. A list of trademark
designations and their owners appears on page xiv.
10 9 8 7 6 5 4 3 2 1
Typeset by Pantek Arts Ltd, Maidstone Kent.
Printed and bound in the United States of America
The Publishers’ policy is to use paper manufactured from sustainable forests.
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page iv
Contents
Preface to the second edition xv
Preface xxi
About the author xxvii
About the contributing authors xxix
Acknowledgements xxxi
PART ONE Motivation – components and markets 1
1 Introduction 3
1.1 Components are for composition 3
1.2 Components – custom-made versus standard software 4
1.3 Inevitability of components 6
1.4 The nature of software and deployable entities 8
1.5 Components are units of deployment 10
1.6 Lessons learned 12
2 Market versus technology 17
2.1 Creating a market 18
2.2 Fundamental properties of component technology 19
2.3 Market development 21
2.3.1 Strategic Focus (January 1995) 21
2.3.2 Ovum (1995) 22
2.3.3 IDC (May 1996) 22
2.3.4 Forrester Research (October 1996) 23
2.3.5 IDC (April 1999) 24
2.3.6 ComponentSource (2001) 25
2.3.7 Flashline (2001) 25
3 Standards 27
3.1 The utmost importance of (quasi) standards 27
3.2 Wiring standards are not enough 29
3.3 Too many competing standards are not useful 30
3.4 Where is software component technology today? 31
3.5 What’s next? 32
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page v
Contents
PART TWO Foundation 33
4 What a component is and is not 35
4.1 Terms and concepts 35
4.1.1 Components 36
4.1.2 Objects 37
4.1.3 Components and objects 38
4.1.4 Modules 39
4.1.5 Whitebox versus blackbox abstractions and reuse 40
4.1.6 Interfaces 42
4.1.7 Explicit context dependencies 44
4.1.8 Component “weight” 45
4.2 Standardization and normalization 46
4.2.1 Horizontal versus vertical markets 47
4.2.2 Standard component worlds and normalization 47
5 Components, interfaces, and re-entrance 49
5.1 Components and interfaces 50
5.1.1 Direct and indirect interfaces 50
5.1.2 Versions 52
5.1.3 Interfaces as contracts 53
5.1.4 Contracts and extra-functional requirements 54
5.1.5 Undocumented “features” 54
5.2 What belongs to a contract? 55
5.2.1 Safety and progress 55
5.2.2 Extra-functional requirements 55
5.2.3 Specifying time and space requirements 56
5.3 Dress code – formal or informal? 57
5.4 Callbacks and contracts 58
5.5 Examples of callbacks and contracts 59
5.5.1 A directory service 60
5.5.2 A client of the directory service 61
5.5.3 Same client, next release 62
5.5.4 A broken contract 64
5.5.5 Prevention is better than cure 65
5.5.6 Proofing the directory service 66
5.5.7 Test functions in action 66
5.6 From callbacks to objects 67
5.7 From interobject consistency to object re-entrance 74
5.8 Self-interference and object re-entrance: a summary 77
5.9 Processes and multithreading 79
5.10 Histories 79
5.11 Specification statements 81
6 Polymorphism 83
6.1 Substitutability – using one for another 83
6.2 Types, subtypes, and type checking 88
6.3 More on subtypes 90
6.4 Object languages and types 93
vi
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page vi
Contents
6.5 Types, interfaces, and components 93
6.6 The paradigm of independent extensibility 95
6.7 Safety by construction – viability of components 98
6.7.1 Module safety 99
6.7.2 Module safety and metaprogramming 99
6.7.3 Safety in a multilanguage environment 100
6.8 Safety, security, trust 101
6.9 Dimensions of independent extensibility 102
6.9.1 Bottleneck interfaces 103
6.9.2 Singleton configurations 104
6.9.3 Parallel, orthogonal, and recursive extensions 104
6.10 Evolution versus immutability of interfaces and contracts 105
6.10.1 Syntactic versus semantic contract changes 105
6.10.2 Contract expiry 106
6.10.3 Overriding law 106
6.11 Other forms of polymorphism 107
7 Object versus class composition or how to avoid inheritance 109
7.1 Inheritance – the soup of the day? 109
7.2 More flavors to the soup 111
7.2.1 Multiple inheritance 111
7.2.2 Mixins 113
7.3 Back to basic ingredients 115
7.4 The fragile base class problem 115
7.4.1 The syntactic fragile base class problem 116
7.4.2 The semantic fragile base class problem 116
7.5 Inheritance – more knots than meet the eye 117
7.6 Approaches to disciplined inheritance 122
7.6.1 The specialization interface 122
7.6.2 Typing the specialization interface 123
7.6.3 Behavioral specification of the specialization interface 125
7.6.4 Reuse and cooperation contracts 127
7.6.5 Representation invariants and method refinements 130
7.6.6 Disciplined inheritance to avoid fragile base class problems 131
7.6.7 Creating correct subclasses without seeing superclass code 131
7.7 From class to object composition 133
7.8 Forwarding versus delegation (or making object composition as problematical
as implementation inheritance) 135
7.9 A brief review of delegation and inheritance 138
8 Aspects of scale and granularity 139
8.1 Units of abstraction 140
8.2 Units of accounting 141
8.3 Units of analysis 141
8.4 Units of compilation 142
8.5 Units of delivery 143
8.6 Units of deployment 143
8.7 Units of dispute 143
8.8 Units of extension 145
vii
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page vii
Contents
8.9 Units of fault containment 146
8.10 Units of instantiation 146
8.11 Units of installation 147
8.12 Units of loading 147
8.13 Units of locality 149
8.14 Units of maintenance 150
8.15 Units of system management 150
8.16 Summary 150
9 Patterns, frameworks, architectures 151
9.1 Forms of design-level reuse 152
9.1.1 Sharing consistency – programming languages 152
9.1.2 Sharing concrete solution fragments – llibraries 153
9.1.3 Sharing individual contracts – interfaces 154
9.1.4 Sharing individual interaction fragments – messages and protocols 155
9.1.5 Sharing individual interaction architecture – patterns 156
9.1.6 Sharing architecture – frameworks 158
9.1.7 Sharing overall structure – system architecture 162
9.1.8 Systems of subsystems – framework hierarchies 164
9.2 Interoperability, legacies, and re-engineering 166
10 Programming – shades of gray 169
10.1 Different programming methods for different programmers 169
10.2 Programming to a system 172
10.3 Connection-oriented programming 172
10.4 Connection-oriented programming – advanced concepts 175
10.5 Events and messages 181
10.5.1 Message syntax and schema – XML 183
10.5.2 Events versus calls 185
10.5.3 Call syntax and protocol – SOAP 186
10.6 Ordering of events – causality, races, and glitches 187
10.7 Very late binding – dispatch interfaces and metaprogramming 189
10.8 Degrees of freedom – sandboxing versus static safety 192
10.9 Recording versus scripting 192
11 What others say 195
11.1 Grady Booch (1987) 195
11.2 Oscar Nierstrasz and Dennis Tsichritzis (1992 and 1995) 196
11.3 Gio Wiederhold, Peter Wegner, and Stefano Ceri (1992) 196
11.4 Ivar Jacobson (1993) 197
11.5 Meta Group (1994) 197
11.6 Jed Harris (1995) 197
11.7 Ovum Report on Distributed Objects (1995) 198
11.8 Robert Orfali, Dan Harkey, and Jeri Edwards (1995, 1996) 198
11.9 Johannes Sametinger (1997) 199
11.10 UML 1.3 Standard (1999) 200
11.11 Desmond D’Souza and Alan Wills (1999) 200
11.12 Krzysztof Czarnecki and Ulrich Eisenecker (2000) 201
11.13 Peter Herzum and Oliver Sims (2000) 202
11.14 CBSE Handbook (2001) 203
viii
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page viii
Contents
PART THREE Component models and platforms 205
12 Object and component “wiring” standards 207
12.1 Where it all came from 207
12.2 From procedures to objects 209
12.3 The fine print 210
12.3.1 Specification of interfaces and object references 210
12.3.2 Interface relationships and polymorphism 211
12.3.3 Naming and locating services 211
12.3.4 Compound documents 212
12.4 On the wire – the rise of XML 214
12.4.1 XML, XML Namespaces, XML Schema 215
12.4.2 XML support standards 220
12.4.3 XML document object and streaming models 221
12.4.4 SOAP 222
12.4.5 XML web services: WSDL, UDDI, WSFL, XLANG 224
12.4.6 Web services and programming models 229
12.5 Which way? 230
13 The OMG way: CORBA, CCM, OMA, and MDA 231
13.1 At the heart – the object request broker 231
13.1.1 From CORBA to OMA 235
13.1.2 CORBA timeline 237
13.1.3 A bit of history – system object model (SOM) 238
13.2 Common object service specifications (CORBAservices) 239
13.2.1 Services supporting enterprise distributed computing 240
13.2.2 Services supporting architecture using fine-grained objects 242
13.3 CORBA Component Model 247
13.3.1 Portable object adapter 247
13.3.2 CCM components 248
13.3.3 CCM containers 252
13.4 CORBA-compliant implementations 252
13.4.1 BEA’s WebLogic 253
13.4.2 IBM’s WebSphere 254
13.4.3 IONA’s Orbix E2A Application Server Platform 255
13.4.4 Borland’s Enterprise Server 255
13.4.5 Non-for-profit implementations 256
13.5 CORBAfacilities 256
13.6 Application objects 257
13.7 CORBA, UML, XML, and MDA 258
13.7.1 Meta-object facility 259
13.7.2 Model-driven architecture (MDA) 259
14 The Sun way – Java, JavaBeans, EJB, and Java 2 editions 261
14.1 Overview and history of Java component technologies 261
14.1.1 Java versus Java 2 262
14.1.2 Runtime environment and reference implementations 263
14.1.3 Spectrum of editions – Micro, Standard, and Enterprise 265
14.2 Java, the language 270
14.2.1 Interfaces versus classes 273
ix
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page ix
Contents
14.2.2 Exceptions and exception handling 278
14.2.3 Threads and synchronization 279
14.2.4 Garbage collection 282
14.3 JavaBeans 284
14.3.1 Events and connections 286
14.3.2 Properties 288
14.3.3 Introspection 289
14.3.4 JAR files – packaging of Java components 292
14.4 Basic Java services 293
14.4.1 Reflection 293
14.4.2 Object serialization 296
14.4.3 Java native interface 298
14.4.4 Java AWT and JFC/Swing 299
14.4.5 Advanced JavaBeans specifications 300
14.5 Component variety – applets, servlets, beans, and Enterprise beans 302
14.5.1 Java server pages (JSP) and servlets 304
14.5.2 Contextual composition – Enterprise JavaBeans (EJB) 308
14.5.3 Data-driven composition – message-driven beans in EJB 2.0 316
14.6 Advanced Java services 316
14.6.1 Distributed object model and RMI 317
14.6.2 Java and CORBA 318
14.6.3 Enterprise service interfaces 319
14.6.4 Java and XML 323
14.7 Interfaces versus classes in Java, revisited 323
14.8 JXTA and Jini 324
14.8.1 Jini – federations of Java objects 325
14.8.2 JXTA – peer-to-peer computing 326
14.9 Java and web services – SunONE 328
15 The Microsoft way: COM, OLE/ActiveX, COM+, and .NET CLR 329
15.1 The first fundamental wiring model – COM 330
15.2 COM object reuse 335
15.3 Interfaces and polymorphism 338
15.3.1 Categories 339
15.3.2 Interfaces and versioning 340
15.4 COM object creation and the COM library 340
15.5 Initializing objects, persistence, structured storage, monikers 342
15.6 From COM to distributed COM (DCOM) 343
15.7 Meta-information and automation 345
15.8 Other COM services 346
15.8.1 Uniform data transfer 346
15.8.2 Dispatch interfaces (dispinterfaces) and dual interfaces 347
15.8.3 Outgoing interfaces and connectable objects 348
15.9 Compound documents and OLE 349
15.9.1 OLE containers and servers 350
15.9.2 Controls – from Visual Basic via OLE to ActiveX 351
15.10 Contextual composition and services 353
15.10.1COM apartments – threading and synchronization 354
15.10.2Microsoft transaction server – contexts and activation 355
15.10.3COM+ – generalized contexts and data-driven composition 356
x
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page x
Contents
15.11 Take two – the .NET Framework 357
15.11.1The .NET big picture 358
15.11.2Common language infrastructure 358
15.11.3COM and platform interoperation 361
15.11.4Exemplary .NET language – C# 362
15.11.5Visual Studio .NET 366
15.12 Assemblies – the .NET components 366
15.13 Common language frameworks 368
15.13.1AppDomains, contexts, reflection, remoting 372
15.13.2Windows Forms, data, management 375
15.13.3Web Forms, Active Server Pages (ASP) .NET 376
15.13.4XML and data 377
15.13.5Enterprise services 378
15.13.6Web services with .NET 378
16 Some further technologies 381
16.1 Computer Associates’ Advantage Plex 381
16.2 Hitachi Appgallery 382
16.3 Groove Transceiver 382
17 Strategic comparison 385
17.1 Shared attributes 385
17.2 Differences 386
17.3 Consequences for infrastructure vendors 390
17.4 Consequences for component vendors 395
18 Efforts on domain standards 397
18.1 OMG Domain Technology Committee 397
18.1.1 OMG BODTF 398
18.2 W3C 398
18.3 Business processes and documents 399
18.3.1 OASIS and ebXML 399
18.3.2 RosettaNet and PIPs 400
18.3.3 BizTalk.org 401
18.4 DMTF’s CIM and WBEM 402
18.5 Java domain standard efforts 403
18.6 OLE for process control 404
18.7 Industry associations 404
18.7.1 Information technology industry groupings 404
18.7.2 Trade associations 405
18.7.3 User associations 406
19 Ongoing concerns 407
19.1 Domain standards 407
19.2 Rethinking the foundations of software engineering 408
19.3 But is it object-oriented? 408
19.4 Object mobility and mobile agents 411
19.5 Foundations – better contracts for better components 412
xi
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xi
Contents
PART FOUR Components meet architecture and process 415
20 Component architecture 417
20.1 The roles of an architecture 417
20.2 Conceptualization – beyond objects? 418
20.3 Definitions of key terms 419
20.4 A tiered component architecture 421
20.5 Components and middleware 423
20.6 Components versus generative programming 424
21 Component frameworks 425
21.1 Contributions of contextual component frameworks 426
21.1.1 Foundation and roots 426
21.1.2 Component frameworks versus connectors 428
21.1.3 Component frameworks versus metaprogramming 430
21.1.4 Component frameworks versus aspect-oriented programming 430
21.2 Frameworks for contextual composition 431
21.2.1 COM+ contexts 432
21.2.2 EJB containers 433
21.2.3 CCM containers 434
21.2.4 CLR contexts and channels 434
21.2.5 Tuple and object spaces 436
21.3 BlackBox component framework 437
21.3.1 Carrier–rider–mapper design pattern 438
21.3.2 Directory objects 440
21.3.3 Hierarchical model view separation 441
21.3.4 Container modes 444
21.3.5 Cascaded message multicasting services 446
21.3.6 Advanced applications based on compound documents 448
21.4 BlackBox and OLE 449
21.5 Portos – a hard realtime component framework and its IDE 451
21.5.1 Structure of Portos 452
21.5.2 Realtime scheduler 453
21.5.3 Cross-development environment 455
22 Component development 457
22.1 The methodology – component-oriented programming 457
22.1.1 Problems of asynchrony 458
22.1.2 Multithreading 458
22.1.3 Learning from circuit design 459
22.1.4 Living without implementation inheritance 460
22.1.5 Nutshell classes 461
22.1.6 Language support 462
22.1.7 Dynamic base objects with forwarding semantics 462
22.1.8 Caller encapsulation 464
22.2 The environment – selecting target frameworks 467
22.3 The tools – selecting programming languages 467
xii
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xii
Contents
23 Component distribution and acquisition 469
23.1 Building what sells – applications not components? 469
23.2 Product cataloging and description 470
23.3 Component location and selection 471
23.4 Superdistribution 472
23.5 Intermediaries 473
24 Component assembly 475
24.1 Systematic initialization and wiring 475
24.2 Visual component assembly 476
24.3 Compound documents to supersede visual assembly 476
24.4 Components beyond graphical user interface environments 477
24.5 Managed and “self-guided” component assembly 478
24.6 End-user assembly 478
24.7 Component evolution 479
25 On the horizon 481
25.1 Advanced object composition 481
25.1.1 Delegation 481
25.1.2 Split objects 482
25.1.3 Environmental acquisition 483
25.1.4 Dynamic inheritance 483
25.2 New forms of object and component abstraction 483
25.2.1 Subject-oriented programming 483
25.2.2 Aspect-oriented programming 484
25.2.3 XML components 485
PART FIVE Markets and components 487
26 Gamut of markets 489
26.1 Components 489
26.2 Component platforms and infrastructure 490
26.3 Tools 490
26.3.1 Component design and implementation tools 490
26.3.2 Component testing tools 491
26.3.3 Component assembly tools 491
26.3.4 Component system diagnosis and maintenance 492
26.4 Professional services 492
26.4.1 Component system and framework architects 492
26.4.2 Component assembly consultants 493
26.4.3 Component configuration management 493
26.4.4 Component warehouses, marketing, and consulting 494
26.4.5 Component operators, web services, application service providers 494
27 New professions 495
27.1 Component system architect 495
27.2 Component framework architect 496
27.3 Component developer 497
27.4 Component assembler 497
xiii
8557Prelimspi-xxxii 8/10/02 2:57pm Pagexiii
Contents
28 A component marketing paradox 499
28.1 Branding 500
28.2 Pay per use 500
28.3 Co-placement of advertisements 503
28.4 Leveraging on newly created markets 504
28.5 Leverage of integrative forces 505
Epilogue 507
Appendix A Java versus C# versus Component Pascal 509
Useful addresses and bibliography 515
Glossary 543
Index 571
Trademark notice
AppleScript, Cyberdog, HyperCard, Macintosh, Mac OS, NeXT, OpenStep, QuickTime and SANE
are trademarks of Apple Computer, Inc., registered in US and other countries.
Tuxedo and WebLogic are registered trademarks of BEA Systems, Inc.
Borland, the Borland Logo, Delphi ™, C++Builder™, Borland® VisiBroker® - RT are trademarks or
registered trademarks of Borland Software Corporation in the United States and other countries.
Jbed is a registered trademark of esmertec, inc.
CBToolkit, CBConnector, ComponentBroker, DSOM, PowerPC®, REXX, SOM®, VisualAge® and
WebSphere® are trademarks of International Business Machines in the United States, other coun-
tries, or both.
Orbix, OrbixCOMet Desktop and OrbixWeb are trademarks of IONA.
LEGO® is a trademark of the LEGO Group.
Netscape and the Netscape N and Ship’s Wheel logos are registered trademarks of Netscape
Communications Corporation in the US and other countries. Netscape Communicator and Netscape
Navigator are also trademarks of Netscape Communications Corporation and may be registered
outside the US.
Authenticode®, ActiveX®, Visual C#™, COM, COM+, DCOM, OLE, EXCEL®, Internet Explorer,
Microsoft® Office, Word®, Microsoft®.NET™, PowerPoint®, Visual Basic®, Visual C++®, Visual
J++®, Visual Studio® and Windows® are either registered trademarks or trademarks of Microsoft
Corporation in the United States and/or other countries.
BlackBox, Component Pascal, Direct-To-COM and Safer OLE are trademarks of Oberon
Microsystems, Inc.
CORBA®, CWM™, IIOP®, MOF™, OMA, OMG Interface Definition Language (IDL)™, UML™ and
XMI® are either registered trademarks or trademarks of the Object Management Group, Inc. in the
United States and/or other countries.
X/Open® and OSF/1® are registered trademarks of The Open Group in the US and other countries.
R/3® is a registered trademark of SAP AG in Germany and in several other countries all over the world.
Sun, Sun Microsystems, the Sun Logo, EJB™, Enterprise JavaBeans™, J2EE™, Java™, JavaBeans™,
Java Naming and Directory Interface™, Java Naming and Discovery Service, Java™ Servlets,
JavaMail™, JavaServer Pages™, JDBC™, JNDI™, JSP™, Java™RMI, and Solaris™ are trademarks or
registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Texas Instruments Composer is a trademark of Texas Instruments.
W3C® and XML are trademarks or registered trademarks of the World Wide Web Consortium,
Massachusetts Institute of Technology.
xiv
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xiv
Preface to the second edition
Writing a book is hard work; preparing a new edition of one’s own old words
is even harder in many ways. My motivation for venturing into this work is the
strong and positive feedback and encouragement I received over the past years
from so many of my readers. The first edition of this book achieved a level of
worldwide recognition well beyond my hopes. Today, the topic area is promi-
nent enough to attract many good authors to write books on the many facets
of component software. Some of this work comes to my attention in its early
stages, for instance when submitted to a conference where I serve on the pro-
gram committee. More mature work reaches me in my function as series editor
of Addison-Wesley’s Component Software Series. Yet, all this is only scratching
the tip of the proverbial iceberg: much is happening in this field at large. Any
fair and complete coverage of this ballooning field is now close to impossible
and I make no pretense that this second edition gets close to such coverage.
Instead, I hope to include what I perceive as the major trends, both as a con-
tinuation from what I described in the first edition and also entirely new devel-
opments that have emerged since.
In its first edition, this book has been adopted as primary or recommended
reading for many university courses in countries around the globe. Close to my
heart is the fact that the first edition was translated into Polish – my family name
is Polish – but reading it is entirely beyond my own language skills as I hardly
speak two Polish words. Some of these developments are traced on a web page
I maintain (there is a link from my homepage at www.research.microsoft.
com/~cszypers/). Some of the problems I had reported as open in the first edi-
tion have attracted the attention of several researchers, leading to progress on
several fronts: this second edition reports on some of the progress made.
Concurrent to these scientific developments, we have seen an explosive
development of component software technologies. On the one hand, many
technologies did not survive long after I closed the first edition in mid 1997 –
OpenDoc and SOM are two visible cases; there are many others. On the other
hand, many of the technologies relevant today were not even around back then.
For example, Enterprise JavaBeans and Java 2 Enterprise Edition on the Java
front, as well as the CORBA Component Model and CORBA 3 had yet to hap-
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xv
Preface to the second edition
pen. CORBA had yet to embrace Java and J2EE had yet to embrace CORBA.
COM+ had just become visible and .NET did not exist back then. XML and
UML were just appearing on the radar screen, but hadn’t had their over-
whelming impact yet. Practically all XML-related standards (XML Schema,
XML Namespaces, XPath, XLink, XPointer, XQuery, XSL, XSLT, and others)
had yet to be publicized. Web Services and their supporting standards (SOAP,
WSDL, UDDI, and so on) were entirely unheard of. Much of the work lead-
ing to many of these had, of course, been going on behind the scenes – and for
years – but it had been far too early for any useful coverage to be included in a
work like this book.
At the time of writing the first edition, it had been painfully clear that for
component technologies to go much further, domain-specific standards were
an absolute requirement. Much has happened since, especially in connection
with XML. Put under pressure by a rapidly tightening need for businesses to
form business-to-business chains, and put into agreeable form by the technol-
ogy-neutral and thus “harmless” XML approach, domain-specific standards are
now mushrooming. Organizations such as BizTalk, DMTF, IETF, OAG,
OASIS, OMG, UDDI, W3C, and WS-I rapidly build repositories of XML-
based domain standards. Domain-specific organizations in many industries are
adding to this gold rush. Clearly, we will soon see too many rather than too few
standards in many important domains, which will undoubtedly lead to a shake-
out over the coming years. (However, notice that the world seems to have an
insatiable hunger for standards!)
In line with many hopeful predictions, yet still not quite as explosive as some
had hoped, the market side of software components has also matured signifi-
cantly since this book first appeared. There are now several companies, includ-
ing ILOG and Rogue Wave Software, deriving most of their revenue from soft-
ware components and several others fully focusing on making the market-side
work, including ComponentSource and Flashline. The latter companies include
warehousing, brokering, and mediation services that bridge supply and demand
sides, just as is already well-established practice in the component worlds of
other engineering disciplines.
All in all, it is now time for a second edition. The theme, the balanced and
critical viewpoint (I hope), overall structure, and emphasis on foundations and
principles have not changed. A myriad of detail-level improvements and cor-
rections re-establish the link to this quickly evolving field. The most significant
additions can be found in Part Three, covering the state-of-the art component
technologies. Part Four used to be about the next generation of technologies
and problems to tackle. This has now changed and offers, instead, a perspective
on components meeting architecture and processes. While this has always been
the main theme of the fourth part, it is now possible to draw on rich examples
from current technologies rather than on speculation of what might be.
For guidance on how to read this book and on whom it addresses, consult
the original preface that I retain in its entirety.
xvi
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xvi
Preface to the second edition
The endless struggle for perfect terminology
What is a software component? As with the first edition, this book has many
pages on that fundamental question. It contains three different definitions that
adopt different levels of abstraction: a first one is found at the very beginning
of the original Preface; a second in Chapter 4; and a final one in Chapter 20.
The existence of more than one definition in this book – and quite a few more
cited from related work (see Chapter 11) – has led to some turbulence.
Krzysztof Czarnecki and Ulrich Eisenecker (2000), in their excellent book
Generative Programming, went as far as claiming that the term “component”
(and thus “software component”) cannot be defined – for a brief discussion see
section 11.12.
I received a lot of feedback on the first edition that addressed my choice of
terminology, telling me that I had overstretched certain terms. I ran into par-
ticular trouble with my use of the terms “binary form” and “no persistent
state,” both of which I claimed a software component had to comply with. This
has led to toing and froing on various occasions, but I have ended up defend-
ing my original choice of words. Such disputes over words have led to rather
productive opinion-forming exchanges over the deeper issues – the one that has
run the longest and is my favorite being the “Beyond Objects” series of month-
ly columns in Software Development magazine (www.sdmagazine.com), created
by Roger Smith. This series includes contributions by Grady Booch, Cris
Kobryn, Bertrand Meyer, Bruce Powel Douglass, Jeff Scanlon, and me; others
might chip in as the series evolves. I encourage readers to browse these columns
as they are naturally closer to the pulse of time than a book can be.
New terminology in this second edition focuses on two developments – the
growing importance of component deployment, and the relationship between
components and services. To address the deployment process, I now distinguish
deployable components (or just components) from deployed components (and,
where important, the latter again from installed components). Component
instances are always the result of instantiating an installed component – even if
installed on the fly. Services are different from components in that they require a
service provider. A service is an instance-level concept – where such instances can
be component instances. These instances are “live” and thus require grounding
in concrete hardware, software, and organizational infrastructure. The term
“service” is unfortunately even more overloaded than the term “component.” I
did not try to rename the many things called service throughout the book, fol-
lowing the many established usages of this word. Instead, I use the term “web
service” when referring to a service that is concretely provided, ultimately by
some organization (or individual). This convention isn’t strictly accurate, as non-
web services can have the same properties, but trying to establish an entirely new
term, such as “provided service” seemed worse. (To be even more precise, most
concrete discussion in this book is about XML web services – a subset of web
services that relies on XML as the fundamental representation format.)
xvii
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xvii
Preface to the second edition
I have tried to improve some terminology over the first edition to minimize
misunderstandings. After careful deliberation, I decided to change terms only
in two cases. I avoided changes in all other cases to maintain continuity from
the first edition and avoid confusion that would be caused by the many refer-
ences to this book that can be found in the wider literature. (For the same rea-
son, I also decided to leave the top-level chapter structure intact.)
The first change is from old “binary form” to new “executable form.” This
new term makes it much more obvious that I am after a form for components
that is defined relative to some execution engine, whether this is a script inter-
preter, a JIT compiler, or a processor, and that I am not insisting on the bina-
ry format dictated by a particular processor or operating system. This change
causes some slight friction when discussing the notions of “COM as a binary
standard” and “binary release-to-release compatibility.” I retained the use of
“binary” in these widely established cases. The new term is also somewhat too
specific in that a software component also contains metadata and resources
(immutable data), none of which are executable in a strict sense, but then nei-
ther are they necessarily binary. (For completeness, a degenerate component
might contain nothing but such non-executable items. Other authors have thus
opted for “machine interpretable.”) Finally, there is a danger that some might
interpret executable as meaning “must have a main() entry point,” which clear-
ly isn’t intended. With terminology it is impossible to win.
The second change is from old “no persistent state” to new “no observable
state.” This addresses a common confusion, that persistence in the sense of
external stable storage is somehow involved here, which wasn’t the intention.
Another common confusion cannot be addressed by simple terminology
change. This is that whenever I say “component” (or, more precisely, “software
component”) I am not referring to object-like instances, but, rather, to notions
that are more stable across time and space, such as classes, modules, or
immutable prototype objects. Components are the units of deployment and,
often, components contain classes or other means to create regular instances
(objects). I am not, in general, worried about stateful objects, but merely
exclude stateful components, which amounts to excluding the observable use of
global variables (aka static variables). Occasionally it is appropriate to use such
variables for caching purposes – thus the restricted exclusion of an observable
state only. Much of this confusion has been triggered by the discussion of
whether or not to support objects that carry state across transactional session
boundaries in systems such as COM+ or EJB (EJB does allow such objects;
COM+ does not.) As should be clear by now, such “stateful objects” and the
claim that software components have no (observable) state have nothing to do
with each other.
xviii
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xviii
Preface to the second edition
Updated statement and time stamp
I completed the second edition in the first half of 2002 – after a lengthy jour-
ney of well over a year’s duration. I wish to acknowledge that I have added yet
another bias to my list of biases – this time by joining Microsoft Research in
1999. While I hope that I succeeded in retaining the balance of my original
work, I certainly understand if readers are more skeptical about this than they
were before this development. After all, I am now employed by one of the pri-
mary parties involved, rather than being an academic observer with a hand in a
small Swiss company alone (a role that I happily still retain). However, this
book should certainly not be seen as necessarily coinciding with the views of
Microsoft. Some may sense that I am overly or prematurely enthusiastic about
.NET or web services, but I gave the same benefit of the doubt to then-young
Java (JavaBeans, for instance, emerged while I was working on the first edition)
and today I am giving it to the CORBA Component Model.
To offset such skepticism, I invited Dominik Gruntz to carefully review and
contribute to the core chapter on Java and Stephan Murer to do the same for
the core chapter on OMG standards and technologies. Both are long-standing
friends who had already helped with their comments on the draft of the first
edition. I am most grateful to them both for accepting my invitation and help-
ing me to uphold the spirit of this book into its second edition. I would like to
thank Christian Becker, Bill Councill, Scott Crawford, George Heineman, and
an anonymous reviewer for reviewing the entire draft and providing many use-
ful comments and suggestions. Hans Jonkers and Ron Kay provided further
comments on the basis of the first edition. Alistair Barros drew on his extensive
experience and helped with many details regarding EJB servers.
Any remaining mistakes and possibly undue bias are of course mine.
Clemens Szyperski
Redmond, May 2002
xix
8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xix
Exploring the Variety of Random
Documents with Different Content
— Ota liikekumppani, jolla on rahaa.
— En. Siinäpä se juuri onkin niksi. En ota. En tahdo. Tahdon pitää
kaikki voitot itse.
— Se on todellakin idea, ei tosin aivan uusi kylläkään, nauroi Seipi.
Ja jos tahdot tuon kapitalistisen suur-unelmasi toteuttaa, niin saatpa
pitää kiirettä, että saat sen valmiiksi, ennenkuin kaikki maailmassa
jaetaan tasan. Muuten joudut, poikaparka, hyödyttämään
keksinnöilläsi kommunistista yhteiskuntaa. Ja minusta se olisikin
ainakin yhtä hyvä aate kuin tuo äskeinen. Minun kannaltani katsoen.
Minulla taas on ihanteita, mutta, kuten jo sanoin, voin surullisen
sisärakenteeni vuoksi niitä toteuttaa itseeni ja ihmiskuntaan nähden
yhtä vähän kuin sinä noita aatteitasi ja keksintöjäsi — rahan
puutteessa. Pelkään sitäpaitsi pahoin, että nuo sinun
neronvälkähdyksesi jäävät tänne, mistä olet ne saanutkin.
— Ei ikinä! Minulla on kiihkeä toimintahalu! Minä rakastan tekoa,
työtä, voimain liikkeelle panoa intohimoisesti. Mieluummin teen
vaikka tuhmuuksia kuin olen tekemättä mitään. Ja minulla on
riittävästi rohkeuttakin siihen, sillä minulla ei ole mitään
kadotettavaa, pelkkää voitettavaa… Niin, minä tiedän, että et usko
minuun, että pidät minua vain pelkkänä suupalttina. Olet sitä mieltä,
että minun pitäisi puhua vähemmän ja toimia enemmän. Niin niin,
niin sinä juuri ajattelet. Mutta ensinnäkin, en ole sellainen kielikello
kuin miksi sinä luulet minua, en puhu kaikille. Sinulle yksin, joka olet
ystäväni, ja niin luotettava ja epäkäytännöllinen, ettet koskaan voisi
varastaa keksinnöitäni tai astua varpailleni tai kavaltaa ajatuksiani. Ja
arvaas, miksi sinulle puhun? Psykologisesta spekulatsionista itseeni
nähden. Siksi, että silloin on fantasioillani jo jokin todistaja, niillä on
silloin jo jonkinlaista todellisuutta, josta minun täytyy vastata. Olen
ikäänkuin kunniavelassa luottotoverilleni. Se kannustaa. Vetoaa
eräisiin loukkaamattomiin puoliin itsessäni. Minä tahdon näyttää, että
voin pitää sanani. Sen saat vielä nähdä.
— Minun laitani on aivan päinvastainen. Minä olen usein puhunut
pois hyvät ajatukseni, heittänyt ne ilmaan. Puhuminen on eräs
kevytmielinen ja mukava tapa vapautua mielikuviensa
liikakuormasta. Sekin on eräs ilmaisumuoto. Kuinka monet
räiskyttelevätkään ilotulituksena ilmaan koko neronlahjansa!
Suurimmat kirjailijakyvytkin voivat siten sammuttaa itsensä ituunsa.
Inhimillisimmät ja parhaimmat ehkä!
— Laiskimmat! Ne, jotka ovat liian velttoja panemaan mitään
paperille. Mutta anteeksi, sinullahan taisi juuri laiskuus olla numero 1
ihanteiden joukossa.
— Aivan oikein, se on juuri ihanteiden elinehto, taiteen ja
runouden ensi edellytys. Elää iankaikkisuudessa, ei ajassa! Minulle se
ehkä on ylellisyyttä, minä en ansaitse sitä. Mutta tositaiteilijoista
puhuen on laiskuus kaikkien hyveiden äiti. Se on hedelmällinen ja
plastillinen. Se kypsyttää tahattomasti, ahkeroitsee touhuamatta.
Useammin tulee Pyhä henki odottavan kuin etsivän luo. Tuo
taiteilijain kuuluisa laiskuus on vain näennäistä, vain laiskuutta tuiki
porvarillisessa tai sosialistisessa tai materialistisessa mielessä, kuinka
tahtoo sanoa, laiskuutta pintapuolisessa merkityksessä. Syvemmässä
merkityksessä he ovat ahkeria, heidän työnsä on niin henkistä, että
heidän ei tarvitse joka hetki pitää työvälineitä kädessään. Ja sama
on laita kaiken korkeimman henkisen työn. Mutta sitä eivät monet
ajattele…
— Tuolla hän nyt on, kuiskasi Vaskio, keskeyttäen ystävänsä. Lapsi
laiskuuden maasta, Vera…
Seiven silmät kääntyivät toverin viittaamaan suuntaan.
Nuori tyttö merenvihreässä viitassa oli astunut sisään erään
vanhemman herran mukana, joka kumarsi keveästi Vaskiolle
vastaten tämän tervehdykseen.
Tytön päätä ja hänen lyhyeksi polkkatukaksi leikattuja mustia
hiuksiaan kiersi pieni turbaanin tapainen päähine, joka jätti
avoimeksi kauniskaartoisen otsan viivat. Hänen lempeän hiiltyvästi ja
unelmoivasti hehkuvat tummat silmänsä näyttivät katselevan
jonkunlaisella surumielisellä välinpitämättömyydellä epämääräiseen
johonkin.
— Sinä tervehdit häntä? kysyi Seipi.
— En, vaan herraa hänen seurassaan.
— Kuka hän on?
— Kylläpä sinä siellä Orkokummussa todellakin olet maalaistunut
ja jäänyt ajastasi jälkeen, kun et tunne edes tohtori Linnaa. Hän se
on, tuo kuuluisa politikoitsija ja sanomalehtimies. Etevä lääkäri
sitäpaitsi. Nerokas kaikin puolin, mutta kiivas. Kuin tulta ja tulikiveä,
pippuria ja tappuroita koko mies.
Seipi tarkasteli salavihkaa tohtorin piirteitä. Hän saattoi olla siinä
vähän yli neljänkymmenen ikäinen. Huulet ja posket paksut, ihon
väri punertavan-ruskea muistuttaen sitä väkevää sikaaria, joka
hehkui hänen suupielissään. Silmät olivat raskaiden luomien takana
melkein piilossa, mutta siitä huolimatta niiden kiilteinen, hypnotisoiva
tuike ja valkuaisten väkevä välkähtely melkein herättivät huomiota.
— Häijy välke hänellä silmissä.
— Koleerisen temperamentin tunnus. Sehän on ihmisillä hyvin
tavallista.
— Minusta se on yhtä harvinaista kuin erikoinen hyvyyden
sädehtelykin.
— Niin, kyllä kai hän ainakin osaa pitää muijansa kurissa. Pieni
tyrannius juuri naisiin tepsii. Siitä he pitävät. Rouva, joka ennen
naimisiin menoaan oli jonkinlainen pieni laulajattaren alku, ei enää
liiku missään, eikä koskaan heitä näe yhdessä ulkona…
— Hän on siis naimisissa?
— On, ja kovasti onkin. Paljon lapsia. Tohtori on oikein patriarkka
vanhaa lajia luonteeltaan. Hänellä on muuten tavaton työkyky,
isänmaallinen mieli. Sanalla sanoen hän on miesten mies joka
suhteessa. Lisäksi mitä hauskin seuramies ja suuri naisten hurmaaja.
Hänellä on suunnaton trafiikki…
— Ihmekös tuo, kun tohtori kahvittaa potilaitaan ja pitää heitä
hyvänä, lisäsi Seipi pieni ilkeä väre äänessä, sillä hänessä oli jostakin
selittämättömästä syystä heti herännyt epämääräinen
vastenmielisyys tohtoria kohtaan.
— Sinä erehdyt, tohtori ei välitä naisista, vaikka naiset välittävät
hänestä. Neiti Soroinen, jonka kanssa hän nyt on, kuuluu vähän
niinkuin hänen perheeseensä. Kaikki minä tiedän. Hän asuu tohtorin
sisaren, tuon ihmeellisen Kaarina Linnan luona. Tiedätkö, tuon
rauhan-sanomalaisen, tuon naisasianaisen, tuon kasvissyöjän!
Ehkäpä juuri tuo kasvatti-äiti on leikkauttanut tytön tukankin. Eikö se
kuulu nais-asian säädöksiin sekin? Luulen, että tuo edistysmielinen
täti on niistänyt hänen sielunsakin kynttilän. Vahinko! Hm, en
hänestä oikeastaan enää välitäkään, olen katsellut häntä jo
tarpeekseni. Olen osoittanut aivan selvästi hänellekin olevani
intresseerattu hänestä. Ei mitään vaikutusta! Kuin kuva! Kuin
kivipatsas! Luulen, ettei hänellä ole sydäntä, että hänkin on jo
tuollainen emansipissa. Hyi saakeli. Mutta samapa se muuten.
Peijakas! Katso, miten tohtorin ohimosuonet pullistuvat. Hän ei voi
missään salata kiivasta luonnonlaatuaan. Hänessä on elämää, verta,
voimaa! Mikä lehti hänellä onkaan kädessään? Jotakin hänelle
harmillista siinä tietysti on. Katsos, täällä on samanlainen! Rauhan
sanomain irtolehtinen! "Älä tapa!" No sen saatoin arvatakin. Nyt
ymmärrän. Hän raivoaa sisartaan vastaan. Hän ei yleensäkään kuulu
voivan sietää sisartaan. Ja oikeastaan olen minä aivan tohtorin
kannalla siinä, etten pidä tuollaisista itsenäistä näyttelevistä naisista.
Naisliike, naisliike, mikä aate sekin on: olla nainen! Yhtä hyvin voisin
minä perustaa miesliikkeen. Ei, parempi on, että nainen vaikenee
seurakunnassa. Tai puhukoon, jos hänellä on hyvin kauniit hampaat!
Ei ole ihme, että tohtori on suutuksissaan. Veli tahtoo koota
itsenäisen Suomen sotajoukon ja sisar on perustanut liiton
hajoittaakseen sen. Se on mielenkiintoista, häh?
— Rauhan sanomat on hyvä lehti, virkahti Seipi hajamielisesti
kuunnellen Vaskion rupattelua.
— Mutta katsopas! Täältä löydän vielä parempia, hörisi Vaskio
kaivaen sanomalehtipöydän paperipinkasta esiin pari
hektografeerattua arkkia. No enpä ole hullumpaa nähnyt. Enkö ole
aina sanonut, että nämä kahvilat ovat oikeita kulttuuriarkistoja?
Tarkastelepas tätä veliseni! Eikö maailma sitten nykyään ole pelkkien
hullujen ja roskajoukkojen paratiisi? Saattaa siitä järkevän ihmisen
otsasuonet pullistuakin. Hei kansalainen! Kas tässä vasta on
valtiollinen julistus hienointa lajia. Vaskio luki ääneen:
'Herran kansan tasavallan perustuslaki.
I. Ihmiskunnan on keräännyttävä yhden korkeimman henkisen
johtajansa
Jeesuksen ympärille ja vannottava uskollisuutta Hallitsija
Jeesukselle.
II. Perheet, kodit, ovat rauhoitettuja piirejä. Perheet ovat
yhteiskunnan perusta. Perheet valitsevat edustajansa tasavallan
neuvostoihin.
III. Nainen on yhdenvertainen miehen kanssa. Äiteys on
yhteiskunnallinen toimi. Yhteiskunta huolehtii äideistä ja lapsista.
Jokaiselle lapselle kuuluu äidin ja isän rakkaus.
IV. Kylät ovat yhteiskunnan toimintayksilöjä. Yhteiskunnalliset
asetukset laaditaan ja virkailijat valitaan kylittäin.
V. Nykyisen yhteiskunnan kulkuneuvot: työpääoma, varapääoma ja
liikenero vaihdetaan kaksipyöräiseen siirtämällä varapääoma
voittoineen työpääoman ja liikeneron haltuun yhteiskunnalle, ja
poistetaan korko.
VI. Maa y.m. kiinteimistöt, tarveaineet ja liikeneuvot ovat
yhteiskunnan hallussa.
VII. Elintarpeet tehdään niin halvaksi kuin suinkin poistamalla
välikädet ja yksityisvoitot.
VIII. Rahaa saa vaan hyödyllisellä työllä.
IX. Ihmisen totuudenkaipuulle avataan vapaa liikuntamahdollisuus.
X. Suurten ja pienten kansallisuuksien jäsenet nauttivat yhtäläisiä
oikeuksia ja vapauksia. Kansa hallitsee itse itseään Hallitsijansa
Jeesuksen tahdon mukaisesti ohjeenaan keskinäinen rakkaus,
vapaus, veljeys ja tasa-arvo.
XI. Kaikilla kansoilla on yhtä suuri valtakunta. Kaikkien
valtakuntien kaikki rajat sulavat yhteen maapallon napapisteissä.
Kunkin kansallisuuden hallussa on valtakunta yhtä suuri kuin
maapallo, jota kaikki kansat hoitavat yhteisesti.
XII. Herran kansan tasavallan jäsenyyteen ovat oikeutettuja kaikki
Jeesukselle kastetut, jotka täten kutsutaan käymään uuteen
vapauden valtakuntaan sisälle. Tehkää portit korkeiksi!
Herran kansan tasavallan pienin palvelija
Topias Outari.'
Vaskio nauroi vatsaansa pidellen.
— Tuo profeetta on suuremmoinen! Ja tässä on vielä lisälehti
edelliseen.
'Auringon säteitä pimeyden maahan.
Kaikki käy kuin itsemme tahtoo. Itse on Jumala. Jumala on itse.
Olet Jumala. Et orja, et mitätön. Olet ääretön, kaikkivaltias.
Auringosta tullut, aurinkoon palaava. Äärettömän pieni, äärettömän
suuri. Ystäväni, mitä murehdit? Sinua painaa ääretön yksinäisyys.
Mutta oletko todella yksin? Etkö ole yhtä kaiken kanssa! Kaikkien,
jopa vihollistesikin tahto on omasi. Kaikki käy kuin itsemme tahtoo.
Sanattomuuden meren pohjastakin löydetään tämä kallis helmi. Sinä,
joka huokaat yksinäisyyden ja avuttomuuden yössä, tiedä, että niin
olet tahtonut. Tiedä, että, jollet itse olisi tahtonut, eivät vanhempasi
olisi sinua tähän maailmaan synnyttäneet.
Veljesi
Topias. Outari.'
— Ei, nyt minun täytyy ottaa päästäni kiinni. Edellisen plakaatin
ymmärsin vielä jotenkuten, mutta tämä! Voi aikoja, voi tapoja! Miksi
ei noita hulluja teljetä koppeihin? Ei järkeä, ei järjestystä missään!
— Tuollaisen profeetan sisäkalusto voi olla hyvinkin kaunis, ja
onkin, sanoi Seipi hiljaisesti. Etkö huomaa, miten totuus ja valhe,
nerous ja kyvyttömyys, henki ja aine taistelevat tuossa kaikessa
ankaraa Jaakopin painiaan? Se on kunnioitettavaa. Ja ellei takerru
puustaimeen, voi hyvällä tahdolla tuon tökerön ja avuttoman
sekavan muodon alta aavistaa aineettoman ja suuren tulevaisuuden
unelman. Aika on utopiojen… Ne puhkeavat nykyään esiin kaikkialta.
— Mahdottomuuksia!
— Eiväthän ne muuten utopioja olisikaan. Mutta ne herättävät
ajatuksia, puhkaisevat mielikuvitukselle ja ihmisyydelle uusia uria.
Tiedätkö, jos minä olisin keksijä, kuten sinä, niin alkaisin jo
suunnitella keksintöjä tuota uutta valtakuntaa varten.
— Herran kansan tasavaltaa varten!
— Jos ei nyt aivan sitäkään varten, niin uutta rauhan aikaa varten
ainakin. Ajatteles, jos kaikki keksimiskyky ja nerous, mikä nyt menee
kielteisiin repimistarkoituksiin, käytettäisiin ihmiskunnan uudestaan
rakentamiseen, mitä saataisikaan aikaan! Sensijaan että nyt
keksitään tukehtavia kaasuja, pommeja, kaikissa elementeissä
liikkuvia hirmuhävittäjiä, keksittäisiin suuria kastelukoneita, hallan
poisjohtajia, vapautettaisiin leipäkysymys luonnon oikullisesta
mielivallasta ja ihminen leipätyön orjuudesta, keksittäisiin
varmuuslaitteet veden ja tulen vaaraa vastaan, keksittäisiin keinot,
joilla surmattaisiin sukupuuttoon kaikki taudin-idut, voitettaisiin
tuberkuloosi ja syöpä ja sukupuolitaudit, lyötäisiin vanhuuden ja
kuoleman vitsaus… Sillä rahalla, mikä nyt joka hetki ammutaan
ilmaan, voitaisiin lisäksi elättää, puettaa, kasvattaa, kouluuttaa,
jalostaa koko maanpiirin kansat, poistaa kaikki kurjuus maailmasta,
tehdä ihmiset aineellisesti turvatuiksi ja henkisesti vapaiksi…
— Sinähän oikein innostut! ihmetteli Vaskio. Saarnaat kuin paras
pappi.
Seipi punehtui hieman.
— Lukisit sinäkin noita Rauhan sanomia, joita halveksit. Niissä on
kaikkea tällaista. Ja ne ovat mielestäni oikeita asioita.
— Oikeita, oikeita! Mikäs siinä. Mutta kovin kaukaisia.
— Siinä lehdessä ei tosin ole päiväpolitiikkaa, mutta sensijaan
herätteitä, aina jotakin varteen otettavaa. Aivan hiljattain oli siinä
ehdotus, että kaikki maailman kansat hyväksyisivät yhden
kansainvälisen kielen.
— Vanha juttu!
— Mutta ei tarpeeksi korostettu. Siitä täytyy myös kerran tulla tosi.
Ajatteles, mikä voimain säästö! Kouluissa on oppiaineina vain oma
kieli ja tämä toinen kansainvälinen. Yhden vieraan kielen ehtii oppia
kuka hyvänsä ja koko maapallon ajatus, koko ihmisyyden nerous ja
omatunto on sillä hetkellä kaikkien yhteisomaisuutta. Sillä
kielitaitoisuus ei sinään vielä ole mitään kulttuuria, niinkuin nykyään
vielä ollaan taipuvaisia uskomaan, vaan vasta se elämänsisältö,
minkä kielitaitoisuus avaa ihmiselle. Se Gordionin solmu olisi tuolla
iskulla aukaistu. Kunpa vain sovittaisiin kielestä. Millekään
kansalliskielelle ei tietysti suoda tuota mahtavaa välittäjä-asemaa ja
esperantot ja idot ovat monen mielestä teennäisyytensä puolesta
vastenmielisiä, aivan kuin jonkinlaiset epäorgaaniset, kemialliset
homunculus-kokeilut…
— Ottakaa Herran kansan tasavaltaan merkkikieli, sormipuhelu!
nauroi
Vaskio.
— Parempi sekin kuin tämä sielullisen yhteisvälineen, tämä
yhteisymmärryksen puute maailmassa.
— Mutta onpa sinulla, poika, harrastuksia! Kuka olisi uskonut! Ei
sinun tilasi sitten vielä aivan toivoton ole. Ja minä kun jo aloin
pelätä, että olisit jonkinlaisen mystillisen, elämänkielteisen
maailmantuskan uhri…
Seipi ei vastannut. Hän jäi epämääräisesti ja näennäisesti
välinpitämättömän näköisenä tuijottamaan siihen suuntaan, jolla tuo
nuori vihreävaippainen tyttö joutui näköpiiriin. Pari kertaa sattuivat
heidän silmänsä vastakkain ja kummallakin kerralla tunsi Seipi
sisällisesti säpsähtävänsä. Niin lempeän surumielisellä ja samalla niin
uhmaisan ylpeällä ilmeellä ei häneen vielä kukaan ihminen ollut
katsonut. Ei kukaan niin omalla ja yksinäisellä katseella.
III.
Viljo Seiven päiväkirjasta.
Miten minä olen yksin! Simo on erinomainen toveri, mutta sentään
en voi puhua hänelle kaikkea, mikä mieltäni askarruttaa. Hän
nauraisi minulle liiaksi. Itsestäni en välitä, mutta on eräitä asioita,
joille en soisi naurettavan. Simo nimittää minua uneksijaksi,
huomaamatta ollenkaan, että hän itse on suurin kuvittelija, mitä maa
päällään kantaa. Sentähden sovimmekin niin hyvin yhteen ja
sentähden tiedän myös monen nauravan Simolle ja pitävän häntä
tuulihattuna, hassuttelijana, turhan touhuajana. Sillä hänen
kuvittelunsa on niin sanoakseni ulkopuolista, käytännöllistä laatua.
Mutta minun! — Niin, muistutan todellakin liian paljon tuota
vähäjärkistä aurinkoprofeettaa uskaltaakseni sen avomielisesti
tunnustaa.
Minussa tapahtuu jotakin, en tiedä mitä. Mutta minusta tuntuu,
että kaikkialla maailmassa tapahtuu jotakin samanlaista, jotakin
suurta ja ihmeellistä. Minä, pisara, siru, atoomi olen vain heikko
heijastus siitä. Mutta sama elämän virta, joka vyöryy läpi
kaikkeuden, halki hengen ja aineen, ohjaa myös minun valtimoitteni
tykintää. Onko suurempaa onnea kuin antautua sille, tuolle elämän
kasvamisen hiljaiselle aavistelulle, kuuntelulle! Se kantaa korvaan
kummallisia sointuja ja säveleitä sielujen kamppailun historiasta.
Mitä se on? Etsiäkö totuutta ja elää hyvyydelle? Ollako ihminen tai
tulla siksi? Se siinnyttää silmään näkyjä sopusoinnun kaukaiselta
rannalta, jossa länsimaisen levottomuuden hyrskyävä vuo vaipuu
itämaisen rauhan ikuiseen mereen.
Katselen elämää edelleenkin syrjästä, kiihkottomana, mutta en
enää välinpitämättömänä. Olen ehkä liiaksi passiivinen, kuten Simo
sanoo, mutta samalla olen levoton ja harras, kaipaava ja odottava.
Ja samaa odotusta olen näkevinäni kaikkialla ympärilläni, sentähden
en uskalla pilkata pienintä, mielettömintä ihanteen kurkoitusta
ihmisrinnassa. Me olemme tottuneet pitämään hyvänä vain sitä,
mikä on hyödyllistä, ulkonaisesti hyödyllistä, siksi me niin helposti
nimitämme mielettömyydeksi sisäisen hyvän palvelusta, tuota
hiljaista ja puhdasta, jota kuitenkin kaikki Itämaan viisaat ovat
kumartaneet. Aarian kirjasto aukaisi silmäni sille. Ja nyt siinä valossa
tajuan raamatunkin arvon, joka ennen niin räikeästi loukkasi
käsitteellisiksi kouluutettujen aivojen rajallista ymmärrystä, niiden
pientä, nykyajan pintapuolisella moraalilla kyllästettyä totuuden
vaatimusta. Se on pohjimmaltaan Itämaiden kädenlyönti Länsimaille,
ikuisen viisauden vuossadasta vuossataan salaperäisesti pisaroiva
Fingalin luola keskellä hetken kuohuja, totuuden helman kaunis
tarkoituksettomuuden tausta ihmisen tahalliselle, hänen
heikkoutensa tukemiseksi rakennetulle tarkoitusperäisyydelle. Se,
jolla on voimaa laskeutua elämän totuuteen kokonaan, hukkaa
itsensä. Ja jolla on uskallusta etsiä sitä koko inhimillisyydellään,
kadottaa tämän maailman. Mutta maailma voittaa hänessä suuren
hengen. Joku Tolstoi on sen tehnyt. Hän olisi ollut rakas itse vanhan
Intian jumaluudelle, joka haastaa:
"Joka ei ainoatakaan olentoa vihaa, joka on hyvä, armelias, vapaa
itsekkäisyydestä ja turhan kunnian pyynnöstä, tyynimielinen onnessa
ja onnettomuudessa ja kärsivällinen, joka tyytyväisenä tarkastelee
elämätänsä, taltuttaa sydämensä, mielensä ja alistuneena minua
avuksensa huutaa, se on Minulle rakas.
"Joka ei enää kuoleman maailmasta eikä maallisista murehdi, joka
on niin vapaa, ettei häntä ilo, pelko tai viha horjuta, se on Minulle
rakas.
"Jolla ei ole ennakkoluuloja, joka on puhdas, rehellinen, himoton,
vapaa epätoivosta ja tykkänään kieltäytyy, täynnä kunnioitusta, se
on Minulle rakas.
"Joka ei rakasta, ei vihaa, ei murehdi eikä himoitse, joka sisällisesti
luopuu onnesta ja onnettomuudesta, se on Minulle rakas.
"Joka pitää ystävää ja vihamiestä yhdenarvoisena, jolle kunnia ja
häpeä ovat yhdenveroiset, jolle kylmä ja kuuma, ilo ja suru ovat
yhdenlaiset, mistään kiinni-riippumaton; joka kiitoksen ja moitteen
suhteen on välinpitämätön, vaitelias, joka himojensa kautta ei ole
mihinkään sidottu, ja lujatahtoisena Minua hartaudessa etsii, se on
minulle rakas.
"Mutta joka juo elämän-antavaa viisautta, josta olen puhunut,
täynnä eläväksi tekevää uskon voimaa ja jonka hartauden päämaali
olen Minä, sitä Minä yli kaiken rakastan."
Miten suurta on tämä ikivanha vapauden unelma! Eikö ole aika jo
siitä muistuttaa! Muistuttaa, että ihmisellä on tuo suuri
synnyntäoikeus olla sisäisesti vapaa, olla tekemättä vastoin
omaatuntoaan, olla tekemättä pahaa. Itsestään kirpoavat silloin
ulkonaisetkin kahleet, valtion pakkoraudat, valheellisen tottumuksen
kirous. Miten siihen enää voidaan pakoittaa sitä, jolle vapaus
elämässä jo on kypsynyt kukkaansa: elämästä vapautumisen
unelmaksi, hengen korkeimman saavutuksen ja kaiken tyhjiin
raukeamisen erottamattomaksi renkaaksi, kuoleman onneksi,
Nirvanaksi, joka alkaa samalla hetkellä kuin elämäkin ja johon
arvaamattaan eräänä yönä aukee kuin kukan umppu avaruuden
syleilyyn.
Niin, ei kellään ole oikeutta estää ihmistä vapautumasta tai
pakoittaa häntä tekemään pahaa, ja pian ei kellään ole oleva siihen
edes voimaa. Kun sielut heräävät…
Ihmishengen uudestisyntyminen on jo alkanut. Rauhan sanomista
luen joka päivä tätä uuden ajan evankeliumia, joka ihmeellisellä
tavalla yhtyy tuohon vanhaan ja joka on kuin balsamia sielulleni. Se
kuiskii minun omaantuntooni uusia ihania käskyjä, jotka tahtoisin
piirtää loimuavilla tulikirjaimilla taivaanlakeen:
Jos tahdot parantaa maailmaa, niin ala itsestäsi!
Jos tahdot olla vapaa, niin ole sitä heti!
Jos tahdot olla hyvä, niin ole sitä heti!
Jos tahdot olla todella suuri, niin säteile niinkuin aurinko hyville ja
pahoille!
Jos tahdot olla sankari, niin kavahda tappamista, mutta älä pelkää
kuolemaa!
Jos tahdot olla rauhan rakentaja, niin kokoa kaikki kansat
renkaaksi murhaavaa tulta vastaan, niin ettei yhdenkään käsi nouse
kostamaan pahaa pahalla, sillä muutoin ei pahalla ole milloinkaan
loppua!
Parempi on tulla surmatuksi kuin itse surmata. Ja suurin sankaruus
nykyaikaisessa sodassa on olla tappamatta.
Miten syvästi minä ihailen tuota naista, tuota Kaarina Linnaa, joka
tällaista unelmoi ja tällaisia ajatuksia kylvää. Hän lausuu julki juuri
sen, jolle itse turhaan olen etsinyt ilmaisumuotoa, hän hedelmöittää
henkeäni joka päivä.
Monasti olen aikonut lähestyä häntä, pyrkiä tutustumaan häneen,
mutta aina olen empinyt. Omaa heikkouttani olen peljännyt. Jos
hänen aineellinen kuorensa olisi minun aineelleni vastenmielinen,
niin jaksaisinko henkeni silmällä nähdä hänet enää niin kauniina kuin
hän kirjoituksistaan päättäen on? Simo pelästyttelee minua aina
vähän päästä. Vielä äsken hän pilkkasi ihailuani. Hän puhuu yleensä
naisista tavalla, joka minua syvästi loukkaa ja murhetuttaa.
Suuttuisin hänelle, ellen koettaisi häntä ymmärtää. Kuinka
sanookaan intialainen viisauden kirja: "Joka ei ainoatakaan olentoa
vihaa, joka on hyvä, armelias, vapaa itsekkäisyydestä… se on Minulle
rakas." Ah, sinä suuri Minä, tule minun sydämeeni, verhoa lempeään
huntuusi minun pikku-minäni!
Luulenpa tosiaan, että hourin samaan tapaan kuin Topias Outari.
Miten Simo ivaisi minua jos hän oikein tuntisi minut. En uskalla
paljastaa itseäni hänelle. Niin heikko olen. Sentähden vuodatan
ajatukseni paperille. Ja miksi puhuisin hänelle asioista, joihin hän ei
ole kypsä. Kallis neste vuotaisi maahan ruukusta, jossa sille ei ole
tilaa.
* * * * *
Olen nähnyt ihmeen. Tuon Veran, tuon Oula Kuutin salaperäisen
tyttären. Ja hän on Kaarina Linnan holhotti. Se on omiaan
moninkertaisesti kiinnittämään mieltäni häneen. Miten kummasti
elämänvirta minua työntää sinne päin. Onko tämä kaikki jonkun
näkymättömän käden johdatusta?
Minä en himoitse naista, minä ihailen häntä. Varmasti on nainen
hienompi, eteerisempi, herkempi osa ihmissielua. Ja sen täytyy astua
historian ohjaksiin nyt juuri, kun miehen sielu julmissa teorioissaan
laskelmallisessa murhanhalussaan ja myötätunnottomassa nerossaan
on kehittynyt huippuunsa, josta se sortuu ilman naisen apuuntuloa.
Ah, eikö ollutkin Enfantin aikoinaan oikeassa, kun hän etsi
ihanteellista Äitiä seurakunnalleen!
Miten ihmisen elämä on lyhyt ja miten kehitys on pitkä. Jos on
totta, mitä eräs Aarian oppi-isistä vakuuttaa, että me ihmiset
käytyämme läpi jo edenismin, viileyden, patriarkaatin ja barbarian
tilat, yhä vieläkin elämme ihmiskunnan lapsuuden ajassa ja että
nykyiseltä sivilisatsionin asteelta pääsemme vasta "garantismiin",
joka tarjoo vain sääntöjä, takeita ihmisten onnellisuudelle, ja että se
taas johtaa "sosiantismiin", jossa itsekkäisyys vasta alkaa hävitä, ja
että sen ajan takana vasta häämöittää "harmonismi", jolloin ihminen
on vapaa, niin onpa matka edessämme huimaavan pitkä! Mutta
ihanteen aavistus, vertauskuva on jo olemassa. Ihmisluonto on taas
valmis vyöryttämään vähemmäksi yltään aineellisuuden raskasta
taakkaa. Ja tällä kertaa on maailman synnin varmaankin ottava
päälleen ei Jumalan Poika, vaan Jumalan Tytär. Hän on raoittava
meille luonnon salaisuuksien huntua uudelta puolelta ja avaava
tieteelle, taiteelle ja uskonnolle, järjelle ja rakkaudelle uudet
mysteeriain kentät vallattaviksi.
* * * * *
Miten minusta vielä äsken tuntui, että minun pitäisi elää
hyvyydelle ja etsiä totuutta kaikissa elämän erilaisissa muodoissa,
niinkuin Kaarina Linna! Nyt minulla on vain yksi yksinkertainen
päämäärä: palvella kauneutta, jonka nimi on Vera, Vera! Vera! Sinun
vuoksesi melkein unohdan, että minulla on ollut onni tutustua myös
pitkien viikkojen salaisen ihailuni esineeseen: Kaarina Linnaan. Ei,
hän ei ollut mikään sellainen strindbergiläisen naisvihan
esiinhaltioima ja pannaan julistama naishirviö-tyyppi, jolla Simo
minua peloitteli. Hän oli oikea ihminen, ei tuollainen touhuava,
eteenpäin nyrkkeilevä yhteiskuntakone, jollainen on minulle
kauhistus, vaan hiljainen ja syvä, täysin sopusoinnussa
tarkoitusperänsä kanssa. Hänessä on enemmän ajatusta kuin
käsitteitä, enemmän viisautta kuin älyä, niin luulen. Hänen suuret,
harmaat silmänsä ovat miettiväiset ja vähän surumieliset ja koko
hänen olennossaan on jonkinlaista lapsellista ujoutta ja elämän
orpoutta kuvastava piirre, joka ilman tuota tyynen otsan
selkeytynyttä tasapainon kaarta antaisi hänelle melkein avuttoman
ilmeen. Hänen voimansa on kokonaan sisällistä laatua ja siitä minä
pidän. Minä kiitän sinua, Kaarina, siitä, ettet särkenyt ihannettani,
mutta enemmän vielä kiitän sinua siitä, että annoit minulle Veran.
Vera, sinä olet jumaluus itse, salaperäisyys, moninaisuus ja
yhtenäisyys, täydellisyys, jonka edessä kysely hyvästä ja pahasta
lakkaa. Sinä sanot rakastavasi pahuutta ja eläväsi valheessa, mutta
minusta sinä olet hyvyys ja totuus. Niin on kauneutesi minut
hurmannut.
En tunne enää itseäni. Mihin on minun kansanvaltaisuuteni
hävinnyt? Sinua katsellessani teen eron ruhtinaiden ja roskaväen
välillä. Tyrannivallan rikkilyödystä komeudesta tahtoisin säilyttää
viimeiset keisarilliset vaunut sinua varten, jotta sinun pienen,
jalokivin soljitellun jalkasi ei tarvitsisi astua samaan lokaan, jota
rahvas polkee.
Sinä olet minun syntini ja autuuteni, Vera! Ensimäisen kerran
elämässä on toinen ihminen minut kokonaan vallannut.
Miten kaunis sinä olet! Minkä näköinen, en tiedä! Minusta tuntuu,
että sinulla on siniset hiukset ja vihreät silmät. Sinun jokainen
liikkeesi olisi kuvanveistäjän ikuistamisen arvoinen.
Sielustasi tiedän vielä vähemmän. Sinä olet Aasian arojen
vaarallinen ja nukkuva kissaeläin, julma ja pyhä kuin Ganges-virta.
Sinusta uhoaa jonkinlainen lempeä anarkia, maailmaasyleilevä,
myötätuntoinen melankolia, joka riisuu minulta voiman. Laki ja
käskyt lakkaavat sinun läsnäollessasi. Ei mikään pidä paikkaansa
sinun suhteesi. Sinulla on lupa kaikkeen. Olet niin kaunis!
Ehkäpä olet tullut tielleni siksi, että oppisin rakastamaan elämää
koko laajuudessaan, uskomaan kaiken pyhään yhteyteen. Ja elämä,
kaikkeus, olet sinä, Vera!
IV.
— Mikä suo minulle kunnian nähdä niin harvinaista vierasta kuin
sinä? hymyili Kaarina veljelleen viitaten häntä istumaan.
— Arvannet kyllä, ellet vielä ole kadottanut kaikkea järkeäsi, jota
kyllä pahoin pelkään, mikä on syy, sanoi tohtori Linna pahaa-
ennustavalla äänellä.
— Niin, arvaan, että se on joku epämiellyttävä asia, jokin moite,
sillä muunlaista sanottavaa ei sinulla vielä koskaan ole minulle ollut,
virkahti Kaarina hiljaisesti ja surumielisesti.
— Totta puhuen, minä häpeän olla veljesi, kantaa samaa nimeä
kuin sinä. Sinä olet tehnyt siitä hulluinhuoneen nimikilven,
hysteeristen, edesvastuuttomain naisten ja yhteiskunnan rappio-
ainesten tunnussanan! Tiedätkö, kyllä jo menee liian pitkälle, että
sinä rupeat painattelemaan ja levittelemään kansanvillityslehtisiä ja
kutsumaan kokoon rauhankonferensseja, ikäänkuin olisit vähintään
joku Wilson!
Tohtori käveli kiivaasti edestakaisin huoneessa kädet
housuntaskuissa.
— Et sinä noin raivostunut yhdestäkään sodanjulistuksesta, et
pitänyt niitä villityksenä.
— Sota on paha, mutta valitettavasti välttämätön paha.
— Miksi sinun mielestäsi välttämätön?
— Siksi, että paha yleensä on yhtä välttämätön kuin sinun
mielestäsi hyvä. Se kuuluu maailmanjärjestykseen, jonka syvin,
pohjimmaisin periaate piilee vastakohtaisuudessa. Kaikki edistys on
taistelulla voitettava. Ei voi ajatella mitään kehitystä ilman sotaa, ei
mitään todellisia luonteita ilman sitä.
— Sen on muututtava henkiseksi. Tappamistavan täytyy voida
hävitä ihmiskunnasta ja se häviääkin vielä…
— Kuule, Kaarina, sanoi tohtori istuutuen ja muuttaen äänensä
alentuvan tuttavalliseksi, jos minun periaatteihini ei kuuluisi olla
puhumatta naisten kanssa periaatteista ja yleensä mistään
järkevästä, niin olisin jo aikoja sitten todistanut sinulle kaikkien sinun
elämänpyrintöjesi mahdottomuuden ja juurettomuuden. Niin, ne
ovat epänormaalisia ja suvun heikontumisviettiä todistavia ja siihen
viepiä. En epäile tarkoitusperiesi rehellisyyttä, mutta kaikkine
hentomielisine parannus-houreinesi olet luvalla sanoen ihmiskunnalle
ja kansallesi vaarallinen ja turmiollinen olento, joka minun
velvollisuuteni ihmisenä ja lääkärinä, kansalaisena ja läheisenä
omaisena olisi toimittaa turvallisempaan paikkaan päähänpistojaan
lietsomaan. Minä vakuutan, että sinun kaltaisesi sielullinen
sairaustapaus taivasta hipovine kuvitelmineen ei ole minun
praktiikassani aivan tuntematon. Tiedän erään paikan, jossa varmasti
tapaisit aatetoverejasi. Mutta heidän ei sallita lähetellä kiertokirjeitä
virastoihin ja yhdistyksiin ja kahviloiden pöydille, niinkuin sinä teet.
Etkö sitten ollenkaan itse huomaa, että teet itsesi naurettavaksi ja
pilaat menettelylläsi hyvätkin asiat? Älä tapa! Älä tapa! Tuonhan me
kaikki tunnemme. Mutta eihän tarvitse silti jäädä tuijottamaan siihen
kuin idiootti, ulottaa sitä aina eläinkuntaan asti, niinkuin sinä teet,
napostella siltä pohjalta heiniä, riisinjyviä, puhtaaksi viljeltyjä
vesiherneitä ja ylläpitää kasvisruokalaa, joka ei kannata ja jossa
pilataan ihmisten terveys. Lääkärinä tiedän, että täytyy olla tehnyt
kovin paljon syntiä ennenkuin ihmisparan vatsa ansaitsee tuollaisen
rangastuksen. Normaalille, terveelle ihmiselle se on
epäoikeudenmukainen ja usein sopimaton. Tämä asian
käytännöllisestä puolesta. Sen aatteellisesta puolesta ei kannata
edes puhua, se on naisellisen epäloogillisuuden tyypillinen hedelmä.
Elämän, vaikkapa vain orgaanisen elämän hävittämistä, siis
surmaamista, ei voi koskaan välttää. Tai missä on raja? Minä tiedän,
että sinun talosi on kärpästen ja muiden basillinkulettajien ja
pörriäisten paratiisi: niitä ei siellä tapeta, mikäli olen kuullut. Eikä
tietysti muitakaan syöpäläisiä.
Tohtori hymyili kylmän hupailevalla ivalla.
— Ja tällä siivottomalla tempulla luulet päässeesi ideasi juuriin!
Niin, basillinkulettajat säästät kyllä, mutta mitä tahdot tehdä itse
basilleilla? Säästät tietysti nekin, siitä yksinkertaisesta syystä, ettet
osaa tehdä parempaa. Mutta meidän lääkärien koko altruistinen
elämäntehtävä uusimpana aikana on perustunut pääasiallisesti
voitokkaaseen taisteluun mikroobeja vastaan. Tuon silmin
näkymättömän biljoona-elämän tuhoamiseen perustuu ihmiskunnan
elämä ja toivo, sen terveydellisten suhteiden kohoaminen ja sen
henkisen voiman säästö. Me ihmiset menestymme kuten muutkin
eläimet vain tappamalla tieltämme pois meille vahingollista elämää.
Aate, josta ei voi toteuttaa kuin pienen alku tyngän, jonka
noudattamisessa ei voi olla rehellinen, perinpohjainen,
johdonmukainen, on siveelliseksi ohjenuoraksi kelpaamaton. Saman
tuomion voisi lähemmin asioita tarkastellen langettaa kaikesta sinun
pakkomielteistäsi, joita tietysti itse luulet ihmiskunnan johtaviksi
aatteiksi: maailman yksikielisyydestä, valtion lapsenhoidosta,
samanlaisesta arvonimestä naidulle ja naimattomalle naiselle ja mitä
ne kaikki ovat! Ne ovat löyhämielisiä ja typeriä rappeutumisteorioja,
jotka johtaisivat tyhjyyteen ja perikatoon, elleivät ne sitä ennen
luhistuisi käytännölliseen mahdottomuuteensa aivan kuin Tolstoin
sukupuoli- tai -puolettomuusopit ja puhtausihanteet. Niin, niin,
tietysti kannatat niitäkin! No, sinä olet jo kautta maan tunnettu
hupsutteluistasi ja nuo sinun vapaamuurarisalaseurasi jäävät kyllä
omaan arvoonsa. Niistä en sano mitään. Mutta tämä uusi "cymbalum
mundi", tämä Rauhan sanomain rauhan liitto! Etkö käsitä, että se on
liian rohkeaa peliä. Tunkeutua suurpolitiikan alalle, josta et ymmärrä
yhtään mitään! Ja noilla valteilla! Nyt juuri kun on toimittava aivan
päinvastoin! Nyt juuri on meidän koottava kansa yksimieliseen
puolustusasentoon, saatava omat sotavarustukset. Tuhannet ihmiset
työskentelevät par'aikaa sen puolesta henkensä uhalla. Ja sinä, sinä
uskallat… Suomalainen sotaväki on päivän polttavin kysymys. Niin
kauan kuin meillä ei ole sitä, ei Suomi mahda mitään.
— Ja mitä mahtaisi se, vaikka sellainen olisikin? Ei mitään.
Kourallinen ihmisiä, äkkiä kokoonhaalittu asevarasto vuossatoja
varustautuneita valtiomahteja vastaan! Voimain haaskausta!
Järjettömyyttä!
— Sinä unohdat, että meidän tällä hetkellä on taisteltava muutakin
kuin ulkonaista valtiomahtia vastaan, että meidän on taisteltava
paitsi valtiollisen itsenäisyytemme myöskin sisäisen järjestyksemme
ja turvallisuutemme puolesta anarkiaa vastaan, että meidän on
lakattava olemasta epäjärjestynyt ja veltto rosvovaltio, jos kerran
rohkenemme tavoittaa vapauden kruunua. Meidän täytyy pyrkiä
vapaaksi samalta tasolta kuin kaikki muutkin. Miten kehtaisi Suomen
kansa tällaisena tulla vaatimaan vapautta muiden kovasti koeteltujen
ja sankarillisesti uhrautuneiden kansojen rinnalle, kansa, joka
mieluummin suutelee ruoskaa kuin raaskii hellittää kalleista
hengistään ainoatakaan, kansa, jonka miehet eivät enää viitsi tehdä
työtä, silloin kun muualla maailmassa ponnistetaan yötä päivää,
ainoastaan maata ja tulla syötetyiksi kalliilla palkoilla kuten laiskat
sotamiehet, jotka he nähtävästi ovat ottaneet esikuvikseen, kansa,
jonka naiset ilomielin synnyttävät äpäröitä sitä tallaavalle viholliselle
raakavoimalle! A propos, viimeinen Suomen naisia koskeva uutinen
on se, että he ovat kutsutut, lakkolaiset nimittäin, toverien turvaan
— sotalaivoille. Kauniita turvapaikkoja todellakin! Sotalaivat ovat
nyttemmin siis enää vain kelluvia porttoloita. Siitä nyt näet, mihin vie
tuo jalo rauhan-aate. Tai kenties ei sinun kannaltasi tässäkään
ilmiössä ole mitään moitittavaa!
Tohtorin äänessä oli viiltävä sävy ja hänen pienet silmänsä
katsoivat
Kaarinaan kuin pistävät neulat.
— Minun kannaltani katsoen, on parempi että sotalaivat ovat
vaikka täynnä porsaita kuin että niitä käytetään surmaamis- ja
hävittämistarkoituksiin.
Kaarinan äänensävyn levollinen huumori ärsytti tohtoria. Hän
nousi taas kiivaasti kävelemään.
— Elää, elää, siis millä hinnalla tahansa, on sinun ihanteesi! Mikä
hirvittävä materialisti on nainen! Mielestäsi on siis tosiaan parempi,
että rakkauden valta rehoittaa, vaikka kunnian kustannuksella, että
jonkun valtion kansalaiset, sen vannoutunut varusväki, mieluummin
viettävät aikansa irstailuissa kuin hoitavat kansansa kohtaloa!
— On väärin pakoittaa heitä hoitamaan sitä sillä tavoin, ase
kädessä!
— Niin sitä vielä vain toistaiseksi hoidetaan ja tullaan hoitamaan
ehkä aina. Kuinka monen kansan elämä on pelastunut vain siten,
että yksilöt ovat uhranneet omansa!
— Mutta miksi eivät yksilöt siis tahdo uhrata henkeään vielä paljon
suuremmalle asialle, rauhalle, joka olisi koko ihmiskunnan pelastus?
Samota sotaan ollakseen tappamatta? Sellainen olisi todella
ihmisyyden arvoinen armeija! Sen asian vuoksi kannattaisi kuolla!
Mutta ihmisraukat eivät tee sitä siksi, että he ovat heikkoja ja
yksinäisiä, siksi, että he eivät tiedä toisiensa ajatuksista, eivät ajoissa
ole järjestyneet miljoonien yksilöjen yhteistahdoksi, rauhan liitoksi.
Jos rauhan pyrintö olisi jo ennen sotaa ehtinyt läpitunkea elämän
käytännön s.o. muuttunut aatteesta järjestöksi, ei sotaa olisi
tullutkaan. Olisi säästynyt tämä poiskulumaton kulttuuritahra 1900-
luvun ihmiskunnalta, tämä masentava yllätys jokaiselta, joka on
uskonut ihmisyyteen, puhumattakaan siitä korvaamattomasta
tappiosta, mitä sota henkisiin ja aineellisiin voimiin nähden
merkitsee. Ja jotta tämä kauheus vast'edes välttyisi ja jotta se
mahdollisimman pian päättyisi, on rauhan liitto juuri
maailmanhistoriallinen päivänkysymys. Pois sotilastakit! Ihmiset on
saatava ymmärtämään, että ne ovat pyövelien, joukkoteurastajien
pukuja, että mikään mahti maailmassa ei saa eikä voi pakoittaa
ihmisiä niissä merkeissä toimimaan, ja että jos hallitukset ovat
tehneet erehdyksen aloittaessaan kansainvälisen murhatyön, eivät
kansat tämän erehdyksen huomattuaan ole velvolliset sitä
jatkamaan. Joka miekkaan tarttuu, se miekkaan hukkuu…
— Rauhan aate on erinomainen rauhan aikana, mutta keskellä
palavinta sotaa se on mahdottomuus, surman hansikas; joka ei tartu
miekkaan, hukkuu silloin vielä varmemmin. Näet sen venäläisistä.
Heillähän kukoistaa jo tuo jalo rauhan rutto. He juoksevat pakoon,
minkä kerkiävät, ottavat kuulat selkäänsä uusilta veljiltään, valtio
hajoaa, järjestys katoaa, vihollinen tallaa suuren valtakunnan
jalkoihinsa, syö suihinsa, ja vieraat vallat pistävät taskuihinsa sen
rikkaudet. Ja meidän suhteemme tekevät venäläiset samoin. Raaka
väkivalta rehoittaa, kaikki huonot ainekset varttuvat ja kasvavat
vihollisten pistimien varassa. Kukaan kunnon ihminen ei enää ole
varma hengestään eikä omaisuudestaan. Tehdään väkivallan töitä
kaupungeissa ja maaseudulla ja, mikä surullisinta, omat kansalaiset
alkavat kilpailla tässä ammatissa vieraan sotaväen kanssa…
— Miten voisi muuten ollakaan, sehän on vain luonnollinen
seuraus siitä, että murhaaminen on nostettu valtioprinsiipiksi, että
sota on hyväksytty. Sodan hyväksyjäin pitäisi siis, jos he olisivat
johdonmukaisia, ottaa vastaan kaikki muukin pienoiskoollinen
rikollisuus nurkumatta.
— Mutta ei paljain käsin. Vieraan asevoiman sorto- ja mielivaltaa
vastaan on velvollisuus asettaa kotimainen asevoima, samoin
pitämään kurissa omia vahinkoeläimiä. On tultu siihen, ettei pian ole
muuta valittavana kuin surmata tai tulla surmatuksi.
— Jos kerran täytyy valita, niin mieluummin sitten tulla surmatuksi
kuin surmata, siinä sankaruus, jota ihmisiltä juuri tänä aikana
vaaditaan, jotta he pääsisivät tästä alennuksen tilasta uuteen
onnellisempaan elämään.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebooknice.com

More Related Content

PDF
Enabling Technologies for Mobile Services The MobiLife Book 1st Edition Mika ...
PDF
Advanced manufacturing an ICT and systems perspective 1st Edition Marco Taisc...
PDF
(eBook PDF) Business-Driven Information Systems 3rd Edition
PDF
The IMS IP Multimedia Concepts and Services 3rd Edition Miikka Poikselka
PDF
Complete Download (Ebook) Software Telemetry by Jamie Riedesel ISBN 978161729...
PDF
Blockchain in Action 1st Edition Bina Ramamurthy
PDF
Immersive Video Technologies Giuseppe Valenzise Martin Alain
PDF
Designing Smart Manufacturing Systems 1st Edition Chaudhery Mustansar Hussain
Enabling Technologies for Mobile Services The MobiLife Book 1st Edition Mika ...
Advanced manufacturing an ICT and systems perspective 1st Edition Marco Taisc...
(eBook PDF) Business-Driven Information Systems 3rd Edition
The IMS IP Multimedia Concepts and Services 3rd Edition Miikka Poikselka
Complete Download (Ebook) Software Telemetry by Jamie Riedesel ISBN 978161729...
Blockchain in Action 1st Edition Bina Ramamurthy
Immersive Video Technologies Giuseppe Valenzise Martin Alain
Designing Smart Manufacturing Systems 1st Edition Chaudhery Mustansar Hussain

Similar to (Ebook) Component Software: Beyond Object-Oriented Programming by Szyperski C., Murer S. ISBN 9780201675207, 020167520X (20)

PDF
Service Availability First International Service Availability Symposium Isas ...
PDF
IoT Technical Challenges and Solutions 1st Edition Arpan Pal
PDF
WPF in Action with Visual Studio 2008 1st Edition Arlen Feldman
PDF
Windows Phone 7 Developer Guide Building Connected Mobile Applications With M...
PDF
Designing With Smart Textiles Sarah Kettley
PDF
Data-Driven Identification of Networks of Dynamic Systems Michel Verhaegen
PDF
Services strategies for embedded control 1st Edition Mary J Cronin
PDF
Cyber security and IT infrastructure protection 1st ed Edition Vacca
PDF
ISSE 2009 Securing Electronic Business Processes Highlights of the Informatio...
PDF
A Practical Guide to Content Delivery Networks Second Edition Gilbert Held
PDF
Test Driven Practical TDD and Acceptance TDD for Java Developers 1st Edition ...
PDF
Business web strategy design alignment and application 1st Edition Latif Al-H...
PDF
Vehicular Communications for Smart Cars Protocols Applications and Security C...
PDF
Management Information Systems 12th Edition Laudon Solutions Manual
PDF
Essentials of MIS 12th Edition Laudon Solutions Manual
PDF
Smart Manufacturing Technologies For Industry 40 Jayakrishna Kandasamy
PDF
Qualitative Data Analysis With Atlas ti 2nd Edition Susanne Friese
PDF
Enterprise SOA Service Oriented Architecture Best Practices 9th Edition Dirk ...
PDF
Application Of Big Data Blockchain And Internet Of Things For Education Infor...
PDF
Advanced Applications of Blockchain Technology Shiho Kim
Service Availability First International Service Availability Symposium Isas ...
IoT Technical Challenges and Solutions 1st Edition Arpan Pal
WPF in Action with Visual Studio 2008 1st Edition Arlen Feldman
Windows Phone 7 Developer Guide Building Connected Mobile Applications With M...
Designing With Smart Textiles Sarah Kettley
Data-Driven Identification of Networks of Dynamic Systems Michel Verhaegen
Services strategies for embedded control 1st Edition Mary J Cronin
Cyber security and IT infrastructure protection 1st ed Edition Vacca
ISSE 2009 Securing Electronic Business Processes Highlights of the Informatio...
A Practical Guide to Content Delivery Networks Second Edition Gilbert Held
Test Driven Practical TDD and Acceptance TDD for Java Developers 1st Edition ...
Business web strategy design alignment and application 1st Edition Latif Al-H...
Vehicular Communications for Smart Cars Protocols Applications and Security C...
Management Information Systems 12th Edition Laudon Solutions Manual
Essentials of MIS 12th Edition Laudon Solutions Manual
Smart Manufacturing Technologies For Industry 40 Jayakrishna Kandasamy
Qualitative Data Analysis With Atlas ti 2nd Edition Susanne Friese
Enterprise SOA Service Oriented Architecture Best Practices 9th Edition Dirk ...
Application Of Big Data Blockchain And Internet Of Things For Education Infor...
Advanced Applications of Blockchain Technology Shiho Kim
Ad

(Ebook) Component Software: Beyond Object-Oriented Programming by Szyperski C., Murer S. ISBN 9780201675207, 020167520X

  • 1. (Ebook) Component Software: Beyond Object- Oriented Programming by Szyperski C., Murer S. ISBN 9780201675207, 020167520X download https://ebooknice.com/product/component-software-beyond-object- oriented-programming-1004904 Explore and download more ebooks at ebooknice.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. (Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James ISBN 9781459699816, 9781743365571, 9781925268492, 1459699815, 1743365578, 1925268497 https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374 (Ebook) Object-Oriented Software Design in C++ by welcome.html https://ebooknice.com/product/object-oriented-software-design- in-c-53739670 (Ebook) Object-Oriented Programming with Swift 2 by Gastón C. Hillar https://ebooknice.com/product/object-oriented-programming-with- swift-2-50199752 (Ebook) Object Oriented Programming using Java by Kendal S. ISBN 9788776815011, 8776815013 https://ebooknice.com/product/object-oriented-programming-using- java-1131714
  • 3. (Ebook) Beginning C# Object-Oriented Programming by Dan Clark ISBN 9781430249368, 1430249366 https://ebooknice.com/product/beginning-c-object-oriented- programming-43034554 (Ebook) Beginning C# Object-Oriented Programming by Dan Clark ISBN 9781430249351, 1430249358 https://ebooknice.com/product/beginning-c-object-oriented- programming-34505758 (Ebook) Object Oriented Programming in C++ by E. Balagurusamy ISBN 9780071072830, 0071072837 https://ebooknice.com/product/object-oriented-programming- in-c-33057582 (Ebook) Object-oriented programming in C++ by Lafore, Robert ISBN 9780672323089, 0672323087 https://ebooknice.com/product/object-oriented-programming- in-c-21984516 (Ebook) Object Oriented Programming With C++ by E. Balagurusamy ISBN 9780070669079, 0070669074 https://ebooknice.com/product/object-oriented-programming- with-c-33727398
  • 6. Component Software 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page i
  • 7. The Addison-Wesley Component Software Series Clemens Szyperski, Series Editor The Addison-Wesley Component Software Series collects key contributions that help architects, CTOs, project managers, technologists, component developers, component assemblers, and system integrators to embrace and understand the diverse field of component software. Taking its ingredients from the core areas of object technology, software architecture, software process management, and others, component software as a discipline is a unique synthesis. At the intersection of technology and market forces, the series covers the concepts of component software and the business case, tried and tested methods and processes, practical success stories, and lessons learned, current technologies, boundary integration technologies, leading commercial component products, and their backing business modes. Publications in the series are selected based on both their applicability and their visionary strength, yielding both immediate and long-term value for the reader. P. Allen, Realizing eBusiness with Components C. Atkinson, Component-based Product Line Engineering with UML J. Cheeseman and J. Daniels, UML Components: A Simple Process for Specifying Component-based Software K. Whitehead, Component-based Development: Principles and Planning for Business Systems 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page ii
  • 8. Component Software Beyond Object-Oriented Programming Second Edition CLEMENS SZYPERSKI with DOMINIK GRUNTZ and STEPHAN MURER An imprint of PEARSON EDUCATION London · Boston · Indianapolis · New York · Mexico City · Toronto Sydney · Tokyo · Singapore · Hong Kong · Cape Town · New Delhi Madrid · Paris · Amsterdam · Munich · Milan · Stockholm acm acm P R E S S ACM Press New York 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page iii
  • 9. PEARSON EDUCATION LIMITED Head Office: Edinburgh Gate Harlow CM20 2JE Tel: +44 (0)1279 623623 Fax: +44 (0)1279 431059 London Office: 128 Long Acre London WC2E 9AN Tel: +44 (0)20 7447 2000 Fax: +44 (0)20 7447 2170 Website: www.it-minds.com www.awprofessional.com © Pearson Education Limited 1999, 2002 First published in Great Britain 1999 Second edition published in Great Britain in 2002 The right of Clemens Szyperski to be identified as the Author of this Work has been asserted by him in accordance with the Copyright, Designs and Patents Act 1988. ISBN 0-201-74572-0 2nd edition (ISBN 0-201-17888-5 1st edition) British Library Cataloguing in Publication Data A CIP catalogue record for this book can be obtained from the British Library. Library of Congress Cataloging in Publication Data Applied for. All rights reserved; no part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without either the prior written permission of the Publishers or a licence permitting restricted copying in the United Kingdom issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1P 4LP. This book may not be lent, resold, hired out or otherwise disposed of by way of trade in any form of binding or cover other than that in which it is published, without the prior consent of the Publishers. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Pearson Education Limited has made every attempt to supply trademark information about manufacturers and their products mentioned in this book. A list of trademark designations and their owners appears on page xiv. 10 9 8 7 6 5 4 3 2 1 Typeset by Pantek Arts Ltd, Maidstone Kent. Printed and bound in the United States of America The Publishers’ policy is to use paper manufactured from sustainable forests. 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page iv
  • 10. Contents Preface to the second edition xv Preface xxi About the author xxvii About the contributing authors xxix Acknowledgements xxxi PART ONE Motivation – components and markets 1 1 Introduction 3 1.1 Components are for composition 3 1.2 Components – custom-made versus standard software 4 1.3 Inevitability of components 6 1.4 The nature of software and deployable entities 8 1.5 Components are units of deployment 10 1.6 Lessons learned 12 2 Market versus technology 17 2.1 Creating a market 18 2.2 Fundamental properties of component technology 19 2.3 Market development 21 2.3.1 Strategic Focus (January 1995) 21 2.3.2 Ovum (1995) 22 2.3.3 IDC (May 1996) 22 2.3.4 Forrester Research (October 1996) 23 2.3.5 IDC (April 1999) 24 2.3.6 ComponentSource (2001) 25 2.3.7 Flashline (2001) 25 3 Standards 27 3.1 The utmost importance of (quasi) standards 27 3.2 Wiring standards are not enough 29 3.3 Too many competing standards are not useful 30 3.4 Where is software component technology today? 31 3.5 What’s next? 32 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page v
  • 11. Contents PART TWO Foundation 33 4 What a component is and is not 35 4.1 Terms and concepts 35 4.1.1 Components 36 4.1.2 Objects 37 4.1.3 Components and objects 38 4.1.4 Modules 39 4.1.5 Whitebox versus blackbox abstractions and reuse 40 4.1.6 Interfaces 42 4.1.7 Explicit context dependencies 44 4.1.8 Component “weight” 45 4.2 Standardization and normalization 46 4.2.1 Horizontal versus vertical markets 47 4.2.2 Standard component worlds and normalization 47 5 Components, interfaces, and re-entrance 49 5.1 Components and interfaces 50 5.1.1 Direct and indirect interfaces 50 5.1.2 Versions 52 5.1.3 Interfaces as contracts 53 5.1.4 Contracts and extra-functional requirements 54 5.1.5 Undocumented “features” 54 5.2 What belongs to a contract? 55 5.2.1 Safety and progress 55 5.2.2 Extra-functional requirements 55 5.2.3 Specifying time and space requirements 56 5.3 Dress code – formal or informal? 57 5.4 Callbacks and contracts 58 5.5 Examples of callbacks and contracts 59 5.5.1 A directory service 60 5.5.2 A client of the directory service 61 5.5.3 Same client, next release 62 5.5.4 A broken contract 64 5.5.5 Prevention is better than cure 65 5.5.6 Proofing the directory service 66 5.5.7 Test functions in action 66 5.6 From callbacks to objects 67 5.7 From interobject consistency to object re-entrance 74 5.8 Self-interference and object re-entrance: a summary 77 5.9 Processes and multithreading 79 5.10 Histories 79 5.11 Specification statements 81 6 Polymorphism 83 6.1 Substitutability – using one for another 83 6.2 Types, subtypes, and type checking 88 6.3 More on subtypes 90 6.4 Object languages and types 93 vi 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page vi
  • 12. Contents 6.5 Types, interfaces, and components 93 6.6 The paradigm of independent extensibility 95 6.7 Safety by construction – viability of components 98 6.7.1 Module safety 99 6.7.2 Module safety and metaprogramming 99 6.7.3 Safety in a multilanguage environment 100 6.8 Safety, security, trust 101 6.9 Dimensions of independent extensibility 102 6.9.1 Bottleneck interfaces 103 6.9.2 Singleton configurations 104 6.9.3 Parallel, orthogonal, and recursive extensions 104 6.10 Evolution versus immutability of interfaces and contracts 105 6.10.1 Syntactic versus semantic contract changes 105 6.10.2 Contract expiry 106 6.10.3 Overriding law 106 6.11 Other forms of polymorphism 107 7 Object versus class composition or how to avoid inheritance 109 7.1 Inheritance – the soup of the day? 109 7.2 More flavors to the soup 111 7.2.1 Multiple inheritance 111 7.2.2 Mixins 113 7.3 Back to basic ingredients 115 7.4 The fragile base class problem 115 7.4.1 The syntactic fragile base class problem 116 7.4.2 The semantic fragile base class problem 116 7.5 Inheritance – more knots than meet the eye 117 7.6 Approaches to disciplined inheritance 122 7.6.1 The specialization interface 122 7.6.2 Typing the specialization interface 123 7.6.3 Behavioral specification of the specialization interface 125 7.6.4 Reuse and cooperation contracts 127 7.6.5 Representation invariants and method refinements 130 7.6.6 Disciplined inheritance to avoid fragile base class problems 131 7.6.7 Creating correct subclasses without seeing superclass code 131 7.7 From class to object composition 133 7.8 Forwarding versus delegation (or making object composition as problematical as implementation inheritance) 135 7.9 A brief review of delegation and inheritance 138 8 Aspects of scale and granularity 139 8.1 Units of abstraction 140 8.2 Units of accounting 141 8.3 Units of analysis 141 8.4 Units of compilation 142 8.5 Units of delivery 143 8.6 Units of deployment 143 8.7 Units of dispute 143 8.8 Units of extension 145 vii 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page vii
  • 13. Contents 8.9 Units of fault containment 146 8.10 Units of instantiation 146 8.11 Units of installation 147 8.12 Units of loading 147 8.13 Units of locality 149 8.14 Units of maintenance 150 8.15 Units of system management 150 8.16 Summary 150 9 Patterns, frameworks, architectures 151 9.1 Forms of design-level reuse 152 9.1.1 Sharing consistency – programming languages 152 9.1.2 Sharing concrete solution fragments – llibraries 153 9.1.3 Sharing individual contracts – interfaces 154 9.1.4 Sharing individual interaction fragments – messages and protocols 155 9.1.5 Sharing individual interaction architecture – patterns 156 9.1.6 Sharing architecture – frameworks 158 9.1.7 Sharing overall structure – system architecture 162 9.1.8 Systems of subsystems – framework hierarchies 164 9.2 Interoperability, legacies, and re-engineering 166 10 Programming – shades of gray 169 10.1 Different programming methods for different programmers 169 10.2 Programming to a system 172 10.3 Connection-oriented programming 172 10.4 Connection-oriented programming – advanced concepts 175 10.5 Events and messages 181 10.5.1 Message syntax and schema – XML 183 10.5.2 Events versus calls 185 10.5.3 Call syntax and protocol – SOAP 186 10.6 Ordering of events – causality, races, and glitches 187 10.7 Very late binding – dispatch interfaces and metaprogramming 189 10.8 Degrees of freedom – sandboxing versus static safety 192 10.9 Recording versus scripting 192 11 What others say 195 11.1 Grady Booch (1987) 195 11.2 Oscar Nierstrasz and Dennis Tsichritzis (1992 and 1995) 196 11.3 Gio Wiederhold, Peter Wegner, and Stefano Ceri (1992) 196 11.4 Ivar Jacobson (1993) 197 11.5 Meta Group (1994) 197 11.6 Jed Harris (1995) 197 11.7 Ovum Report on Distributed Objects (1995) 198 11.8 Robert Orfali, Dan Harkey, and Jeri Edwards (1995, 1996) 198 11.9 Johannes Sametinger (1997) 199 11.10 UML 1.3 Standard (1999) 200 11.11 Desmond D’Souza and Alan Wills (1999) 200 11.12 Krzysztof Czarnecki and Ulrich Eisenecker (2000) 201 11.13 Peter Herzum and Oliver Sims (2000) 202 11.14 CBSE Handbook (2001) 203 viii 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page viii
  • 14. Contents PART THREE Component models and platforms 205 12 Object and component “wiring” standards 207 12.1 Where it all came from 207 12.2 From procedures to objects 209 12.3 The fine print 210 12.3.1 Specification of interfaces and object references 210 12.3.2 Interface relationships and polymorphism 211 12.3.3 Naming and locating services 211 12.3.4 Compound documents 212 12.4 On the wire – the rise of XML 214 12.4.1 XML, XML Namespaces, XML Schema 215 12.4.2 XML support standards 220 12.4.3 XML document object and streaming models 221 12.4.4 SOAP 222 12.4.5 XML web services: WSDL, UDDI, WSFL, XLANG 224 12.4.6 Web services and programming models 229 12.5 Which way? 230 13 The OMG way: CORBA, CCM, OMA, and MDA 231 13.1 At the heart – the object request broker 231 13.1.1 From CORBA to OMA 235 13.1.2 CORBA timeline 237 13.1.3 A bit of history – system object model (SOM) 238 13.2 Common object service specifications (CORBAservices) 239 13.2.1 Services supporting enterprise distributed computing 240 13.2.2 Services supporting architecture using fine-grained objects 242 13.3 CORBA Component Model 247 13.3.1 Portable object adapter 247 13.3.2 CCM components 248 13.3.3 CCM containers 252 13.4 CORBA-compliant implementations 252 13.4.1 BEA’s WebLogic 253 13.4.2 IBM’s WebSphere 254 13.4.3 IONA’s Orbix E2A Application Server Platform 255 13.4.4 Borland’s Enterprise Server 255 13.4.5 Non-for-profit implementations 256 13.5 CORBAfacilities 256 13.6 Application objects 257 13.7 CORBA, UML, XML, and MDA 258 13.7.1 Meta-object facility 259 13.7.2 Model-driven architecture (MDA) 259 14 The Sun way – Java, JavaBeans, EJB, and Java 2 editions 261 14.1 Overview and history of Java component technologies 261 14.1.1 Java versus Java 2 262 14.1.2 Runtime environment and reference implementations 263 14.1.3 Spectrum of editions – Micro, Standard, and Enterprise 265 14.2 Java, the language 270 14.2.1 Interfaces versus classes 273 ix 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page ix
  • 15. Contents 14.2.2 Exceptions and exception handling 278 14.2.3 Threads and synchronization 279 14.2.4 Garbage collection 282 14.3 JavaBeans 284 14.3.1 Events and connections 286 14.3.2 Properties 288 14.3.3 Introspection 289 14.3.4 JAR files – packaging of Java components 292 14.4 Basic Java services 293 14.4.1 Reflection 293 14.4.2 Object serialization 296 14.4.3 Java native interface 298 14.4.4 Java AWT and JFC/Swing 299 14.4.5 Advanced JavaBeans specifications 300 14.5 Component variety – applets, servlets, beans, and Enterprise beans 302 14.5.1 Java server pages (JSP) and servlets 304 14.5.2 Contextual composition – Enterprise JavaBeans (EJB) 308 14.5.3 Data-driven composition – message-driven beans in EJB 2.0 316 14.6 Advanced Java services 316 14.6.1 Distributed object model and RMI 317 14.6.2 Java and CORBA 318 14.6.3 Enterprise service interfaces 319 14.6.4 Java and XML 323 14.7 Interfaces versus classes in Java, revisited 323 14.8 JXTA and Jini 324 14.8.1 Jini – federations of Java objects 325 14.8.2 JXTA – peer-to-peer computing 326 14.9 Java and web services – SunONE 328 15 The Microsoft way: COM, OLE/ActiveX, COM+, and .NET CLR 329 15.1 The first fundamental wiring model – COM 330 15.2 COM object reuse 335 15.3 Interfaces and polymorphism 338 15.3.1 Categories 339 15.3.2 Interfaces and versioning 340 15.4 COM object creation and the COM library 340 15.5 Initializing objects, persistence, structured storage, monikers 342 15.6 From COM to distributed COM (DCOM) 343 15.7 Meta-information and automation 345 15.8 Other COM services 346 15.8.1 Uniform data transfer 346 15.8.2 Dispatch interfaces (dispinterfaces) and dual interfaces 347 15.8.3 Outgoing interfaces and connectable objects 348 15.9 Compound documents and OLE 349 15.9.1 OLE containers and servers 350 15.9.2 Controls – from Visual Basic via OLE to ActiveX 351 15.10 Contextual composition and services 353 15.10.1COM apartments – threading and synchronization 354 15.10.2Microsoft transaction server – contexts and activation 355 15.10.3COM+ – generalized contexts and data-driven composition 356 x 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page x
  • 16. Contents 15.11 Take two – the .NET Framework 357 15.11.1The .NET big picture 358 15.11.2Common language infrastructure 358 15.11.3COM and platform interoperation 361 15.11.4Exemplary .NET language – C# 362 15.11.5Visual Studio .NET 366 15.12 Assemblies – the .NET components 366 15.13 Common language frameworks 368 15.13.1AppDomains, contexts, reflection, remoting 372 15.13.2Windows Forms, data, management 375 15.13.3Web Forms, Active Server Pages (ASP) .NET 376 15.13.4XML and data 377 15.13.5Enterprise services 378 15.13.6Web services with .NET 378 16 Some further technologies 381 16.1 Computer Associates’ Advantage Plex 381 16.2 Hitachi Appgallery 382 16.3 Groove Transceiver 382 17 Strategic comparison 385 17.1 Shared attributes 385 17.2 Differences 386 17.3 Consequences for infrastructure vendors 390 17.4 Consequences for component vendors 395 18 Efforts on domain standards 397 18.1 OMG Domain Technology Committee 397 18.1.1 OMG BODTF 398 18.2 W3C 398 18.3 Business processes and documents 399 18.3.1 OASIS and ebXML 399 18.3.2 RosettaNet and PIPs 400 18.3.3 BizTalk.org 401 18.4 DMTF’s CIM and WBEM 402 18.5 Java domain standard efforts 403 18.6 OLE for process control 404 18.7 Industry associations 404 18.7.1 Information technology industry groupings 404 18.7.2 Trade associations 405 18.7.3 User associations 406 19 Ongoing concerns 407 19.1 Domain standards 407 19.2 Rethinking the foundations of software engineering 408 19.3 But is it object-oriented? 408 19.4 Object mobility and mobile agents 411 19.5 Foundations – better contracts for better components 412 xi 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xi
  • 17. Contents PART FOUR Components meet architecture and process 415 20 Component architecture 417 20.1 The roles of an architecture 417 20.2 Conceptualization – beyond objects? 418 20.3 Definitions of key terms 419 20.4 A tiered component architecture 421 20.5 Components and middleware 423 20.6 Components versus generative programming 424 21 Component frameworks 425 21.1 Contributions of contextual component frameworks 426 21.1.1 Foundation and roots 426 21.1.2 Component frameworks versus connectors 428 21.1.3 Component frameworks versus metaprogramming 430 21.1.4 Component frameworks versus aspect-oriented programming 430 21.2 Frameworks for contextual composition 431 21.2.1 COM+ contexts 432 21.2.2 EJB containers 433 21.2.3 CCM containers 434 21.2.4 CLR contexts and channels 434 21.2.5 Tuple and object spaces 436 21.3 BlackBox component framework 437 21.3.1 Carrier–rider–mapper design pattern 438 21.3.2 Directory objects 440 21.3.3 Hierarchical model view separation 441 21.3.4 Container modes 444 21.3.5 Cascaded message multicasting services 446 21.3.6 Advanced applications based on compound documents 448 21.4 BlackBox and OLE 449 21.5 Portos – a hard realtime component framework and its IDE 451 21.5.1 Structure of Portos 452 21.5.2 Realtime scheduler 453 21.5.3 Cross-development environment 455 22 Component development 457 22.1 The methodology – component-oriented programming 457 22.1.1 Problems of asynchrony 458 22.1.2 Multithreading 458 22.1.3 Learning from circuit design 459 22.1.4 Living without implementation inheritance 460 22.1.5 Nutshell classes 461 22.1.6 Language support 462 22.1.7 Dynamic base objects with forwarding semantics 462 22.1.8 Caller encapsulation 464 22.2 The environment – selecting target frameworks 467 22.3 The tools – selecting programming languages 467 xii 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xii
  • 18. Contents 23 Component distribution and acquisition 469 23.1 Building what sells – applications not components? 469 23.2 Product cataloging and description 470 23.3 Component location and selection 471 23.4 Superdistribution 472 23.5 Intermediaries 473 24 Component assembly 475 24.1 Systematic initialization and wiring 475 24.2 Visual component assembly 476 24.3 Compound documents to supersede visual assembly 476 24.4 Components beyond graphical user interface environments 477 24.5 Managed and “self-guided” component assembly 478 24.6 End-user assembly 478 24.7 Component evolution 479 25 On the horizon 481 25.1 Advanced object composition 481 25.1.1 Delegation 481 25.1.2 Split objects 482 25.1.3 Environmental acquisition 483 25.1.4 Dynamic inheritance 483 25.2 New forms of object and component abstraction 483 25.2.1 Subject-oriented programming 483 25.2.2 Aspect-oriented programming 484 25.2.3 XML components 485 PART FIVE Markets and components 487 26 Gamut of markets 489 26.1 Components 489 26.2 Component platforms and infrastructure 490 26.3 Tools 490 26.3.1 Component design and implementation tools 490 26.3.2 Component testing tools 491 26.3.3 Component assembly tools 491 26.3.4 Component system diagnosis and maintenance 492 26.4 Professional services 492 26.4.1 Component system and framework architects 492 26.4.2 Component assembly consultants 493 26.4.3 Component configuration management 493 26.4.4 Component warehouses, marketing, and consulting 494 26.4.5 Component operators, web services, application service providers 494 27 New professions 495 27.1 Component system architect 495 27.2 Component framework architect 496 27.3 Component developer 497 27.4 Component assembler 497 xiii 8557Prelimspi-xxxii 8/10/02 2:57pm Pagexiii
  • 19. Contents 28 A component marketing paradox 499 28.1 Branding 500 28.2 Pay per use 500 28.3 Co-placement of advertisements 503 28.4 Leveraging on newly created markets 504 28.5 Leverage of integrative forces 505 Epilogue 507 Appendix A Java versus C# versus Component Pascal 509 Useful addresses and bibliography 515 Glossary 543 Index 571 Trademark notice AppleScript, Cyberdog, HyperCard, Macintosh, Mac OS, NeXT, OpenStep, QuickTime and SANE are trademarks of Apple Computer, Inc., registered in US and other countries. Tuxedo and WebLogic are registered trademarks of BEA Systems, Inc. Borland, the Borland Logo, Delphi ™, C++Builder™, Borland® VisiBroker® - RT are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries. Jbed is a registered trademark of esmertec, inc. CBToolkit, CBConnector, ComponentBroker, DSOM, PowerPC®, REXX, SOM®, VisualAge® and WebSphere® are trademarks of International Business Machines in the United States, other coun- tries, or both. Orbix, OrbixCOMet Desktop and OrbixWeb are trademarks of IONA. LEGO® is a trademark of the LEGO Group. Netscape and the Netscape N and Ship’s Wheel logos are registered trademarks of Netscape Communications Corporation in the US and other countries. Netscape Communicator and Netscape Navigator are also trademarks of Netscape Communications Corporation and may be registered outside the US. Authenticode®, ActiveX®, Visual C#™, COM, COM+, DCOM, OLE, EXCEL®, Internet Explorer, Microsoft® Office, Word®, Microsoft®.NET™, PowerPoint®, Visual Basic®, Visual C++®, Visual J++®, Visual Studio® and Windows® are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. BlackBox, Component Pascal, Direct-To-COM and Safer OLE are trademarks of Oberon Microsystems, Inc. CORBA®, CWM™, IIOP®, MOF™, OMA, OMG Interface Definition Language (IDL)™, UML™ and XMI® are either registered trademarks or trademarks of the Object Management Group, Inc. in the United States and/or other countries. X/Open® and OSF/1® are registered trademarks of The Open Group in the US and other countries. R/3® is a registered trademark of SAP AG in Germany and in several other countries all over the world. Sun, Sun Microsystems, the Sun Logo, EJB™, Enterprise JavaBeans™, J2EE™, Java™, JavaBeans™, Java Naming and Directory Interface™, Java Naming and Discovery Service, Java™ Servlets, JavaMail™, JavaServer Pages™, JDBC™, JNDI™, JSP™, Java™RMI, and Solaris™ are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Texas Instruments Composer is a trademark of Texas Instruments. W3C® and XML are trademarks or registered trademarks of the World Wide Web Consortium, Massachusetts Institute of Technology. xiv 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xiv
  • 20. Preface to the second edition Writing a book is hard work; preparing a new edition of one’s own old words is even harder in many ways. My motivation for venturing into this work is the strong and positive feedback and encouragement I received over the past years from so many of my readers. The first edition of this book achieved a level of worldwide recognition well beyond my hopes. Today, the topic area is promi- nent enough to attract many good authors to write books on the many facets of component software. Some of this work comes to my attention in its early stages, for instance when submitted to a conference where I serve on the pro- gram committee. More mature work reaches me in my function as series editor of Addison-Wesley’s Component Software Series. Yet, all this is only scratching the tip of the proverbial iceberg: much is happening in this field at large. Any fair and complete coverage of this ballooning field is now close to impossible and I make no pretense that this second edition gets close to such coverage. Instead, I hope to include what I perceive as the major trends, both as a con- tinuation from what I described in the first edition and also entirely new devel- opments that have emerged since. In its first edition, this book has been adopted as primary or recommended reading for many university courses in countries around the globe. Close to my heart is the fact that the first edition was translated into Polish – my family name is Polish – but reading it is entirely beyond my own language skills as I hardly speak two Polish words. Some of these developments are traced on a web page I maintain (there is a link from my homepage at www.research.microsoft. com/~cszypers/). Some of the problems I had reported as open in the first edi- tion have attracted the attention of several researchers, leading to progress on several fronts: this second edition reports on some of the progress made. Concurrent to these scientific developments, we have seen an explosive development of component software technologies. On the one hand, many technologies did not survive long after I closed the first edition in mid 1997 – OpenDoc and SOM are two visible cases; there are many others. On the other hand, many of the technologies relevant today were not even around back then. For example, Enterprise JavaBeans and Java 2 Enterprise Edition on the Java front, as well as the CORBA Component Model and CORBA 3 had yet to hap- 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xv
  • 21. Preface to the second edition pen. CORBA had yet to embrace Java and J2EE had yet to embrace CORBA. COM+ had just become visible and .NET did not exist back then. XML and UML were just appearing on the radar screen, but hadn’t had their over- whelming impact yet. Practically all XML-related standards (XML Schema, XML Namespaces, XPath, XLink, XPointer, XQuery, XSL, XSLT, and others) had yet to be publicized. Web Services and their supporting standards (SOAP, WSDL, UDDI, and so on) were entirely unheard of. Much of the work lead- ing to many of these had, of course, been going on behind the scenes – and for years – but it had been far too early for any useful coverage to be included in a work like this book. At the time of writing the first edition, it had been painfully clear that for component technologies to go much further, domain-specific standards were an absolute requirement. Much has happened since, especially in connection with XML. Put under pressure by a rapidly tightening need for businesses to form business-to-business chains, and put into agreeable form by the technol- ogy-neutral and thus “harmless” XML approach, domain-specific standards are now mushrooming. Organizations such as BizTalk, DMTF, IETF, OAG, OASIS, OMG, UDDI, W3C, and WS-I rapidly build repositories of XML- based domain standards. Domain-specific organizations in many industries are adding to this gold rush. Clearly, we will soon see too many rather than too few standards in many important domains, which will undoubtedly lead to a shake- out over the coming years. (However, notice that the world seems to have an insatiable hunger for standards!) In line with many hopeful predictions, yet still not quite as explosive as some had hoped, the market side of software components has also matured signifi- cantly since this book first appeared. There are now several companies, includ- ing ILOG and Rogue Wave Software, deriving most of their revenue from soft- ware components and several others fully focusing on making the market-side work, including ComponentSource and Flashline. The latter companies include warehousing, brokering, and mediation services that bridge supply and demand sides, just as is already well-established practice in the component worlds of other engineering disciplines. All in all, it is now time for a second edition. The theme, the balanced and critical viewpoint (I hope), overall structure, and emphasis on foundations and principles have not changed. A myriad of detail-level improvements and cor- rections re-establish the link to this quickly evolving field. The most significant additions can be found in Part Three, covering the state-of-the art component technologies. Part Four used to be about the next generation of technologies and problems to tackle. This has now changed and offers, instead, a perspective on components meeting architecture and processes. While this has always been the main theme of the fourth part, it is now possible to draw on rich examples from current technologies rather than on speculation of what might be. For guidance on how to read this book and on whom it addresses, consult the original preface that I retain in its entirety. xvi 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xvi
  • 22. Preface to the second edition The endless struggle for perfect terminology What is a software component? As with the first edition, this book has many pages on that fundamental question. It contains three different definitions that adopt different levels of abstraction: a first one is found at the very beginning of the original Preface; a second in Chapter 4; and a final one in Chapter 20. The existence of more than one definition in this book – and quite a few more cited from related work (see Chapter 11) – has led to some turbulence. Krzysztof Czarnecki and Ulrich Eisenecker (2000), in their excellent book Generative Programming, went as far as claiming that the term “component” (and thus “software component”) cannot be defined – for a brief discussion see section 11.12. I received a lot of feedback on the first edition that addressed my choice of terminology, telling me that I had overstretched certain terms. I ran into par- ticular trouble with my use of the terms “binary form” and “no persistent state,” both of which I claimed a software component had to comply with. This has led to toing and froing on various occasions, but I have ended up defend- ing my original choice of words. Such disputes over words have led to rather productive opinion-forming exchanges over the deeper issues – the one that has run the longest and is my favorite being the “Beyond Objects” series of month- ly columns in Software Development magazine (www.sdmagazine.com), created by Roger Smith. This series includes contributions by Grady Booch, Cris Kobryn, Bertrand Meyer, Bruce Powel Douglass, Jeff Scanlon, and me; others might chip in as the series evolves. I encourage readers to browse these columns as they are naturally closer to the pulse of time than a book can be. New terminology in this second edition focuses on two developments – the growing importance of component deployment, and the relationship between components and services. To address the deployment process, I now distinguish deployable components (or just components) from deployed components (and, where important, the latter again from installed components). Component instances are always the result of instantiating an installed component – even if installed on the fly. Services are different from components in that they require a service provider. A service is an instance-level concept – where such instances can be component instances. These instances are “live” and thus require grounding in concrete hardware, software, and organizational infrastructure. The term “service” is unfortunately even more overloaded than the term “component.” I did not try to rename the many things called service throughout the book, fol- lowing the many established usages of this word. Instead, I use the term “web service” when referring to a service that is concretely provided, ultimately by some organization (or individual). This convention isn’t strictly accurate, as non- web services can have the same properties, but trying to establish an entirely new term, such as “provided service” seemed worse. (To be even more precise, most concrete discussion in this book is about XML web services – a subset of web services that relies on XML as the fundamental representation format.) xvii 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xvii
  • 23. Preface to the second edition I have tried to improve some terminology over the first edition to minimize misunderstandings. After careful deliberation, I decided to change terms only in two cases. I avoided changes in all other cases to maintain continuity from the first edition and avoid confusion that would be caused by the many refer- ences to this book that can be found in the wider literature. (For the same rea- son, I also decided to leave the top-level chapter structure intact.) The first change is from old “binary form” to new “executable form.” This new term makes it much more obvious that I am after a form for components that is defined relative to some execution engine, whether this is a script inter- preter, a JIT compiler, or a processor, and that I am not insisting on the bina- ry format dictated by a particular processor or operating system. This change causes some slight friction when discussing the notions of “COM as a binary standard” and “binary release-to-release compatibility.” I retained the use of “binary” in these widely established cases. The new term is also somewhat too specific in that a software component also contains metadata and resources (immutable data), none of which are executable in a strict sense, but then nei- ther are they necessarily binary. (For completeness, a degenerate component might contain nothing but such non-executable items. Other authors have thus opted for “machine interpretable.”) Finally, there is a danger that some might interpret executable as meaning “must have a main() entry point,” which clear- ly isn’t intended. With terminology it is impossible to win. The second change is from old “no persistent state” to new “no observable state.” This addresses a common confusion, that persistence in the sense of external stable storage is somehow involved here, which wasn’t the intention. Another common confusion cannot be addressed by simple terminology change. This is that whenever I say “component” (or, more precisely, “software component”) I am not referring to object-like instances, but, rather, to notions that are more stable across time and space, such as classes, modules, or immutable prototype objects. Components are the units of deployment and, often, components contain classes or other means to create regular instances (objects). I am not, in general, worried about stateful objects, but merely exclude stateful components, which amounts to excluding the observable use of global variables (aka static variables). Occasionally it is appropriate to use such variables for caching purposes – thus the restricted exclusion of an observable state only. Much of this confusion has been triggered by the discussion of whether or not to support objects that carry state across transactional session boundaries in systems such as COM+ or EJB (EJB does allow such objects; COM+ does not.) As should be clear by now, such “stateful objects” and the claim that software components have no (observable) state have nothing to do with each other. xviii 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xviii
  • 24. Preface to the second edition Updated statement and time stamp I completed the second edition in the first half of 2002 – after a lengthy jour- ney of well over a year’s duration. I wish to acknowledge that I have added yet another bias to my list of biases – this time by joining Microsoft Research in 1999. While I hope that I succeeded in retaining the balance of my original work, I certainly understand if readers are more skeptical about this than they were before this development. After all, I am now employed by one of the pri- mary parties involved, rather than being an academic observer with a hand in a small Swiss company alone (a role that I happily still retain). However, this book should certainly not be seen as necessarily coinciding with the views of Microsoft. Some may sense that I am overly or prematurely enthusiastic about .NET or web services, but I gave the same benefit of the doubt to then-young Java (JavaBeans, for instance, emerged while I was working on the first edition) and today I am giving it to the CORBA Component Model. To offset such skepticism, I invited Dominik Gruntz to carefully review and contribute to the core chapter on Java and Stephan Murer to do the same for the core chapter on OMG standards and technologies. Both are long-standing friends who had already helped with their comments on the draft of the first edition. I am most grateful to them both for accepting my invitation and help- ing me to uphold the spirit of this book into its second edition. I would like to thank Christian Becker, Bill Councill, Scott Crawford, George Heineman, and an anonymous reviewer for reviewing the entire draft and providing many use- ful comments and suggestions. Hans Jonkers and Ron Kay provided further comments on the basis of the first edition. Alistair Barros drew on his extensive experience and helped with many details regarding EJB servers. Any remaining mistakes and possibly undue bias are of course mine. Clemens Szyperski Redmond, May 2002 xix 8557 Prelims pi-xxxii 8/10/02 2:57 pm Page xix
  • 25. Exploring the Variety of Random Documents with Different Content
  • 26. — Ota liikekumppani, jolla on rahaa. — En. Siinäpä se juuri onkin niksi. En ota. En tahdo. Tahdon pitää kaikki voitot itse. — Se on todellakin idea, ei tosin aivan uusi kylläkään, nauroi Seipi. Ja jos tahdot tuon kapitalistisen suur-unelmasi toteuttaa, niin saatpa pitää kiirettä, että saat sen valmiiksi, ennenkuin kaikki maailmassa jaetaan tasan. Muuten joudut, poikaparka, hyödyttämään keksinnöilläsi kommunistista yhteiskuntaa. Ja minusta se olisikin ainakin yhtä hyvä aate kuin tuo äskeinen. Minun kannaltani katsoen. Minulla taas on ihanteita, mutta, kuten jo sanoin, voin surullisen sisärakenteeni vuoksi niitä toteuttaa itseeni ja ihmiskuntaan nähden yhtä vähän kuin sinä noita aatteitasi ja keksintöjäsi — rahan puutteessa. Pelkään sitäpaitsi pahoin, että nuo sinun neronvälkähdyksesi jäävät tänne, mistä olet ne saanutkin. — Ei ikinä! Minulla on kiihkeä toimintahalu! Minä rakastan tekoa, työtä, voimain liikkeelle panoa intohimoisesti. Mieluummin teen vaikka tuhmuuksia kuin olen tekemättä mitään. Ja minulla on riittävästi rohkeuttakin siihen, sillä minulla ei ole mitään kadotettavaa, pelkkää voitettavaa… Niin, minä tiedän, että et usko minuun, että pidät minua vain pelkkänä suupalttina. Olet sitä mieltä, että minun pitäisi puhua vähemmän ja toimia enemmän. Niin niin, niin sinä juuri ajattelet. Mutta ensinnäkin, en ole sellainen kielikello kuin miksi sinä luulet minua, en puhu kaikille. Sinulle yksin, joka olet ystäväni, ja niin luotettava ja epäkäytännöllinen, ettet koskaan voisi varastaa keksinnöitäni tai astua varpailleni tai kavaltaa ajatuksiani. Ja arvaas, miksi sinulle puhun? Psykologisesta spekulatsionista itseeni nähden. Siksi, että silloin on fantasioillani jo jokin todistaja, niillä on silloin jo jonkinlaista todellisuutta, josta minun täytyy vastata. Olen
  • 27. ikäänkuin kunniavelassa luottotoverilleni. Se kannustaa. Vetoaa eräisiin loukkaamattomiin puoliin itsessäni. Minä tahdon näyttää, että voin pitää sanani. Sen saat vielä nähdä. — Minun laitani on aivan päinvastainen. Minä olen usein puhunut pois hyvät ajatukseni, heittänyt ne ilmaan. Puhuminen on eräs kevytmielinen ja mukava tapa vapautua mielikuviensa liikakuormasta. Sekin on eräs ilmaisumuoto. Kuinka monet räiskyttelevätkään ilotulituksena ilmaan koko neronlahjansa! Suurimmat kirjailijakyvytkin voivat siten sammuttaa itsensä ituunsa. Inhimillisimmät ja parhaimmat ehkä! — Laiskimmat! Ne, jotka ovat liian velttoja panemaan mitään paperille. Mutta anteeksi, sinullahan taisi juuri laiskuus olla numero 1 ihanteiden joukossa. — Aivan oikein, se on juuri ihanteiden elinehto, taiteen ja runouden ensi edellytys. Elää iankaikkisuudessa, ei ajassa! Minulle se ehkä on ylellisyyttä, minä en ansaitse sitä. Mutta tositaiteilijoista puhuen on laiskuus kaikkien hyveiden äiti. Se on hedelmällinen ja plastillinen. Se kypsyttää tahattomasti, ahkeroitsee touhuamatta. Useammin tulee Pyhä henki odottavan kuin etsivän luo. Tuo taiteilijain kuuluisa laiskuus on vain näennäistä, vain laiskuutta tuiki porvarillisessa tai sosialistisessa tai materialistisessa mielessä, kuinka tahtoo sanoa, laiskuutta pintapuolisessa merkityksessä. Syvemmässä merkityksessä he ovat ahkeria, heidän työnsä on niin henkistä, että heidän ei tarvitse joka hetki pitää työvälineitä kädessään. Ja sama on laita kaiken korkeimman henkisen työn. Mutta sitä eivät monet ajattele… — Tuolla hän nyt on, kuiskasi Vaskio, keskeyttäen ystävänsä. Lapsi laiskuuden maasta, Vera…
  • 28. Seiven silmät kääntyivät toverin viittaamaan suuntaan. Nuori tyttö merenvihreässä viitassa oli astunut sisään erään vanhemman herran mukana, joka kumarsi keveästi Vaskiolle vastaten tämän tervehdykseen. Tytön päätä ja hänen lyhyeksi polkkatukaksi leikattuja mustia hiuksiaan kiersi pieni turbaanin tapainen päähine, joka jätti avoimeksi kauniskaartoisen otsan viivat. Hänen lempeän hiiltyvästi ja unelmoivasti hehkuvat tummat silmänsä näyttivät katselevan jonkunlaisella surumielisellä välinpitämättömyydellä epämääräiseen johonkin. — Sinä tervehdit häntä? kysyi Seipi. — En, vaan herraa hänen seurassaan. — Kuka hän on? — Kylläpä sinä siellä Orkokummussa todellakin olet maalaistunut ja jäänyt ajastasi jälkeen, kun et tunne edes tohtori Linnaa. Hän se on, tuo kuuluisa politikoitsija ja sanomalehtimies. Etevä lääkäri sitäpaitsi. Nerokas kaikin puolin, mutta kiivas. Kuin tulta ja tulikiveä, pippuria ja tappuroita koko mies. Seipi tarkasteli salavihkaa tohtorin piirteitä. Hän saattoi olla siinä vähän yli neljänkymmenen ikäinen. Huulet ja posket paksut, ihon väri punertavan-ruskea muistuttaen sitä väkevää sikaaria, joka hehkui hänen suupielissään. Silmät olivat raskaiden luomien takana melkein piilossa, mutta siitä huolimatta niiden kiilteinen, hypnotisoiva tuike ja valkuaisten väkevä välkähtely melkein herättivät huomiota. — Häijy välke hänellä silmissä.
  • 29. — Koleerisen temperamentin tunnus. Sehän on ihmisillä hyvin tavallista. — Minusta se on yhtä harvinaista kuin erikoinen hyvyyden sädehtelykin. — Niin, kyllä kai hän ainakin osaa pitää muijansa kurissa. Pieni tyrannius juuri naisiin tepsii. Siitä he pitävät. Rouva, joka ennen naimisiin menoaan oli jonkinlainen pieni laulajattaren alku, ei enää liiku missään, eikä koskaan heitä näe yhdessä ulkona… — Hän on siis naimisissa? — On, ja kovasti onkin. Paljon lapsia. Tohtori on oikein patriarkka vanhaa lajia luonteeltaan. Hänellä on muuten tavaton työkyky, isänmaallinen mieli. Sanalla sanoen hän on miesten mies joka suhteessa. Lisäksi mitä hauskin seuramies ja suuri naisten hurmaaja. Hänellä on suunnaton trafiikki… — Ihmekös tuo, kun tohtori kahvittaa potilaitaan ja pitää heitä hyvänä, lisäsi Seipi pieni ilkeä väre äänessä, sillä hänessä oli jostakin selittämättömästä syystä heti herännyt epämääräinen vastenmielisyys tohtoria kohtaan. — Sinä erehdyt, tohtori ei välitä naisista, vaikka naiset välittävät hänestä. Neiti Soroinen, jonka kanssa hän nyt on, kuuluu vähän niinkuin hänen perheeseensä. Kaikki minä tiedän. Hän asuu tohtorin sisaren, tuon ihmeellisen Kaarina Linnan luona. Tiedätkö, tuon rauhan-sanomalaisen, tuon naisasianaisen, tuon kasvissyöjän! Ehkäpä juuri tuo kasvatti-äiti on leikkauttanut tytön tukankin. Eikö se kuulu nais-asian säädöksiin sekin? Luulen, että tuo edistysmielinen täti on niistänyt hänen sielunsakin kynttilän. Vahinko! Hm, en
  • 30. hänestä oikeastaan enää välitäkään, olen katsellut häntä jo tarpeekseni. Olen osoittanut aivan selvästi hänellekin olevani intresseerattu hänestä. Ei mitään vaikutusta! Kuin kuva! Kuin kivipatsas! Luulen, ettei hänellä ole sydäntä, että hänkin on jo tuollainen emansipissa. Hyi saakeli. Mutta samapa se muuten. Peijakas! Katso, miten tohtorin ohimosuonet pullistuvat. Hän ei voi missään salata kiivasta luonnonlaatuaan. Hänessä on elämää, verta, voimaa! Mikä lehti hänellä onkaan kädessään? Jotakin hänelle harmillista siinä tietysti on. Katsos, täällä on samanlainen! Rauhan sanomain irtolehtinen! "Älä tapa!" No sen saatoin arvatakin. Nyt ymmärrän. Hän raivoaa sisartaan vastaan. Hän ei yleensäkään kuulu voivan sietää sisartaan. Ja oikeastaan olen minä aivan tohtorin kannalla siinä, etten pidä tuollaisista itsenäistä näyttelevistä naisista. Naisliike, naisliike, mikä aate sekin on: olla nainen! Yhtä hyvin voisin minä perustaa miesliikkeen. Ei, parempi on, että nainen vaikenee seurakunnassa. Tai puhukoon, jos hänellä on hyvin kauniit hampaat! Ei ole ihme, että tohtori on suutuksissaan. Veli tahtoo koota itsenäisen Suomen sotajoukon ja sisar on perustanut liiton hajoittaakseen sen. Se on mielenkiintoista, häh? — Rauhan sanomat on hyvä lehti, virkahti Seipi hajamielisesti kuunnellen Vaskion rupattelua. — Mutta katsopas! Täältä löydän vielä parempia, hörisi Vaskio kaivaen sanomalehtipöydän paperipinkasta esiin pari hektografeerattua arkkia. No enpä ole hullumpaa nähnyt. Enkö ole aina sanonut, että nämä kahvilat ovat oikeita kulttuuriarkistoja? Tarkastelepas tätä veliseni! Eikö maailma sitten nykyään ole pelkkien hullujen ja roskajoukkojen paratiisi? Saattaa siitä järkevän ihmisen otsasuonet pullistuakin. Hei kansalainen! Kas tässä vasta on valtiollinen julistus hienointa lajia. Vaskio luki ääneen:
  • 31. 'Herran kansan tasavallan perustuslaki. I. Ihmiskunnan on keräännyttävä yhden korkeimman henkisen johtajansa Jeesuksen ympärille ja vannottava uskollisuutta Hallitsija Jeesukselle. II. Perheet, kodit, ovat rauhoitettuja piirejä. Perheet ovat yhteiskunnan perusta. Perheet valitsevat edustajansa tasavallan neuvostoihin. III. Nainen on yhdenvertainen miehen kanssa. Äiteys on yhteiskunnallinen toimi. Yhteiskunta huolehtii äideistä ja lapsista. Jokaiselle lapselle kuuluu äidin ja isän rakkaus. IV. Kylät ovat yhteiskunnan toimintayksilöjä. Yhteiskunnalliset asetukset laaditaan ja virkailijat valitaan kylittäin. V. Nykyisen yhteiskunnan kulkuneuvot: työpääoma, varapääoma ja liikenero vaihdetaan kaksipyöräiseen siirtämällä varapääoma voittoineen työpääoman ja liikeneron haltuun yhteiskunnalle, ja poistetaan korko. VI. Maa y.m. kiinteimistöt, tarveaineet ja liikeneuvot ovat yhteiskunnan hallussa. VII. Elintarpeet tehdään niin halvaksi kuin suinkin poistamalla välikädet ja yksityisvoitot. VIII. Rahaa saa vaan hyödyllisellä työllä. IX. Ihmisen totuudenkaipuulle avataan vapaa liikuntamahdollisuus.
  • 32. X. Suurten ja pienten kansallisuuksien jäsenet nauttivat yhtäläisiä oikeuksia ja vapauksia. Kansa hallitsee itse itseään Hallitsijansa Jeesuksen tahdon mukaisesti ohjeenaan keskinäinen rakkaus, vapaus, veljeys ja tasa-arvo. XI. Kaikilla kansoilla on yhtä suuri valtakunta. Kaikkien valtakuntien kaikki rajat sulavat yhteen maapallon napapisteissä. Kunkin kansallisuuden hallussa on valtakunta yhtä suuri kuin maapallo, jota kaikki kansat hoitavat yhteisesti. XII. Herran kansan tasavallan jäsenyyteen ovat oikeutettuja kaikki Jeesukselle kastetut, jotka täten kutsutaan käymään uuteen vapauden valtakuntaan sisälle. Tehkää portit korkeiksi! Herran kansan tasavallan pienin palvelija Topias Outari.' Vaskio nauroi vatsaansa pidellen. — Tuo profeetta on suuremmoinen! Ja tässä on vielä lisälehti edelliseen. 'Auringon säteitä pimeyden maahan. Kaikki käy kuin itsemme tahtoo. Itse on Jumala. Jumala on itse. Olet Jumala. Et orja, et mitätön. Olet ääretön, kaikkivaltias. Auringosta tullut, aurinkoon palaava. Äärettömän pieni, äärettömän suuri. Ystäväni, mitä murehdit? Sinua painaa ääretön yksinäisyys. Mutta oletko todella yksin? Etkö ole yhtä kaiken kanssa! Kaikkien, jopa vihollistesikin tahto on omasi. Kaikki käy kuin itsemme tahtoo. Sanattomuuden meren pohjastakin löydetään tämä kallis helmi. Sinä, joka huokaat yksinäisyyden ja avuttomuuden yössä, tiedä, että niin
  • 33. olet tahtonut. Tiedä, että, jollet itse olisi tahtonut, eivät vanhempasi olisi sinua tähän maailmaan synnyttäneet. Veljesi Topias. Outari.' — Ei, nyt minun täytyy ottaa päästäni kiinni. Edellisen plakaatin ymmärsin vielä jotenkuten, mutta tämä! Voi aikoja, voi tapoja! Miksi ei noita hulluja teljetä koppeihin? Ei järkeä, ei järjestystä missään! — Tuollaisen profeetan sisäkalusto voi olla hyvinkin kaunis, ja onkin, sanoi Seipi hiljaisesti. Etkö huomaa, miten totuus ja valhe, nerous ja kyvyttömyys, henki ja aine taistelevat tuossa kaikessa ankaraa Jaakopin painiaan? Se on kunnioitettavaa. Ja ellei takerru puustaimeen, voi hyvällä tahdolla tuon tökerön ja avuttoman sekavan muodon alta aavistaa aineettoman ja suuren tulevaisuuden unelman. Aika on utopiojen… Ne puhkeavat nykyään esiin kaikkialta. — Mahdottomuuksia! — Eiväthän ne muuten utopioja olisikaan. Mutta ne herättävät ajatuksia, puhkaisevat mielikuvitukselle ja ihmisyydelle uusia uria. Tiedätkö, jos minä olisin keksijä, kuten sinä, niin alkaisin jo suunnitella keksintöjä tuota uutta valtakuntaa varten. — Herran kansan tasavaltaa varten! — Jos ei nyt aivan sitäkään varten, niin uutta rauhan aikaa varten ainakin. Ajatteles, jos kaikki keksimiskyky ja nerous, mikä nyt menee kielteisiin repimistarkoituksiin, käytettäisiin ihmiskunnan uudestaan rakentamiseen, mitä saataisikaan aikaan! Sensijaan että nyt keksitään tukehtavia kaasuja, pommeja, kaikissa elementeissä
  • 34. liikkuvia hirmuhävittäjiä, keksittäisiin suuria kastelukoneita, hallan poisjohtajia, vapautettaisiin leipäkysymys luonnon oikullisesta mielivallasta ja ihminen leipätyön orjuudesta, keksittäisiin varmuuslaitteet veden ja tulen vaaraa vastaan, keksittäisiin keinot, joilla surmattaisiin sukupuuttoon kaikki taudin-idut, voitettaisiin tuberkuloosi ja syöpä ja sukupuolitaudit, lyötäisiin vanhuuden ja kuoleman vitsaus… Sillä rahalla, mikä nyt joka hetki ammutaan ilmaan, voitaisiin lisäksi elättää, puettaa, kasvattaa, kouluuttaa, jalostaa koko maanpiirin kansat, poistaa kaikki kurjuus maailmasta, tehdä ihmiset aineellisesti turvatuiksi ja henkisesti vapaiksi… — Sinähän oikein innostut! ihmetteli Vaskio. Saarnaat kuin paras pappi. Seipi punehtui hieman. — Lukisit sinäkin noita Rauhan sanomia, joita halveksit. Niissä on kaikkea tällaista. Ja ne ovat mielestäni oikeita asioita. — Oikeita, oikeita! Mikäs siinä. Mutta kovin kaukaisia. — Siinä lehdessä ei tosin ole päiväpolitiikkaa, mutta sensijaan herätteitä, aina jotakin varteen otettavaa. Aivan hiljattain oli siinä ehdotus, että kaikki maailman kansat hyväksyisivät yhden kansainvälisen kielen. — Vanha juttu! — Mutta ei tarpeeksi korostettu. Siitä täytyy myös kerran tulla tosi. Ajatteles, mikä voimain säästö! Kouluissa on oppiaineina vain oma kieli ja tämä toinen kansainvälinen. Yhden vieraan kielen ehtii oppia kuka hyvänsä ja koko maapallon ajatus, koko ihmisyyden nerous ja
  • 35. omatunto on sillä hetkellä kaikkien yhteisomaisuutta. Sillä kielitaitoisuus ei sinään vielä ole mitään kulttuuria, niinkuin nykyään vielä ollaan taipuvaisia uskomaan, vaan vasta se elämänsisältö, minkä kielitaitoisuus avaa ihmiselle. Se Gordionin solmu olisi tuolla iskulla aukaistu. Kunpa vain sovittaisiin kielestä. Millekään kansalliskielelle ei tietysti suoda tuota mahtavaa välittäjä-asemaa ja esperantot ja idot ovat monen mielestä teennäisyytensä puolesta vastenmielisiä, aivan kuin jonkinlaiset epäorgaaniset, kemialliset homunculus-kokeilut… — Ottakaa Herran kansan tasavaltaan merkkikieli, sormipuhelu! nauroi Vaskio. — Parempi sekin kuin tämä sielullisen yhteisvälineen, tämä yhteisymmärryksen puute maailmassa. — Mutta onpa sinulla, poika, harrastuksia! Kuka olisi uskonut! Ei sinun tilasi sitten vielä aivan toivoton ole. Ja minä kun jo aloin pelätä, että olisit jonkinlaisen mystillisen, elämänkielteisen maailmantuskan uhri… Seipi ei vastannut. Hän jäi epämääräisesti ja näennäisesti välinpitämättömän näköisenä tuijottamaan siihen suuntaan, jolla tuo nuori vihreävaippainen tyttö joutui näköpiiriin. Pari kertaa sattuivat heidän silmänsä vastakkain ja kummallakin kerralla tunsi Seipi sisällisesti säpsähtävänsä. Niin lempeän surumielisellä ja samalla niin uhmaisan ylpeällä ilmeellä ei häneen vielä kukaan ihminen ollut katsonut. Ei kukaan niin omalla ja yksinäisellä katseella.
  • 36. III. Viljo Seiven päiväkirjasta. Miten minä olen yksin! Simo on erinomainen toveri, mutta sentään en voi puhua hänelle kaikkea, mikä mieltäni askarruttaa. Hän nauraisi minulle liiaksi. Itsestäni en välitä, mutta on eräitä asioita, joille en soisi naurettavan. Simo nimittää minua uneksijaksi, huomaamatta ollenkaan, että hän itse on suurin kuvittelija, mitä maa päällään kantaa. Sentähden sovimmekin niin hyvin yhteen ja sentähden tiedän myös monen nauravan Simolle ja pitävän häntä tuulihattuna, hassuttelijana, turhan touhuajana. Sillä hänen kuvittelunsa on niin sanoakseni ulkopuolista, käytännöllistä laatua. Mutta minun! — Niin, muistutan todellakin liian paljon tuota vähäjärkistä aurinkoprofeettaa uskaltaakseni sen avomielisesti tunnustaa. Minussa tapahtuu jotakin, en tiedä mitä. Mutta minusta tuntuu, että kaikkialla maailmassa tapahtuu jotakin samanlaista, jotakin suurta ja ihmeellistä. Minä, pisara, siru, atoomi olen vain heikko heijastus siitä. Mutta sama elämän virta, joka vyöryy läpi kaikkeuden, halki hengen ja aineen, ohjaa myös minun valtimoitteni tykintää. Onko suurempaa onnea kuin antautua sille, tuolle elämän
  • 37. kasvamisen hiljaiselle aavistelulle, kuuntelulle! Se kantaa korvaan kummallisia sointuja ja säveleitä sielujen kamppailun historiasta. Mitä se on? Etsiäkö totuutta ja elää hyvyydelle? Ollako ihminen tai tulla siksi? Se siinnyttää silmään näkyjä sopusoinnun kaukaiselta rannalta, jossa länsimaisen levottomuuden hyrskyävä vuo vaipuu itämaisen rauhan ikuiseen mereen. Katselen elämää edelleenkin syrjästä, kiihkottomana, mutta en enää välinpitämättömänä. Olen ehkä liiaksi passiivinen, kuten Simo sanoo, mutta samalla olen levoton ja harras, kaipaava ja odottava. Ja samaa odotusta olen näkevinäni kaikkialla ympärilläni, sentähden en uskalla pilkata pienintä, mielettömintä ihanteen kurkoitusta ihmisrinnassa. Me olemme tottuneet pitämään hyvänä vain sitä, mikä on hyödyllistä, ulkonaisesti hyödyllistä, siksi me niin helposti nimitämme mielettömyydeksi sisäisen hyvän palvelusta, tuota hiljaista ja puhdasta, jota kuitenkin kaikki Itämaan viisaat ovat kumartaneet. Aarian kirjasto aukaisi silmäni sille. Ja nyt siinä valossa tajuan raamatunkin arvon, joka ennen niin räikeästi loukkasi käsitteellisiksi kouluutettujen aivojen rajallista ymmärrystä, niiden pientä, nykyajan pintapuolisella moraalilla kyllästettyä totuuden vaatimusta. Se on pohjimmaltaan Itämaiden kädenlyönti Länsimaille, ikuisen viisauden vuossadasta vuossataan salaperäisesti pisaroiva Fingalin luola keskellä hetken kuohuja, totuuden helman kaunis tarkoituksettomuuden tausta ihmisen tahalliselle, hänen heikkoutensa tukemiseksi rakennetulle tarkoitusperäisyydelle. Se, jolla on voimaa laskeutua elämän totuuteen kokonaan, hukkaa itsensä. Ja jolla on uskallusta etsiä sitä koko inhimillisyydellään, kadottaa tämän maailman. Mutta maailma voittaa hänessä suuren hengen. Joku Tolstoi on sen tehnyt. Hän olisi ollut rakas itse vanhan Intian jumaluudelle, joka haastaa:
  • 38. "Joka ei ainoatakaan olentoa vihaa, joka on hyvä, armelias, vapaa itsekkäisyydestä ja turhan kunnian pyynnöstä, tyynimielinen onnessa ja onnettomuudessa ja kärsivällinen, joka tyytyväisenä tarkastelee elämätänsä, taltuttaa sydämensä, mielensä ja alistuneena minua avuksensa huutaa, se on Minulle rakas. "Joka ei enää kuoleman maailmasta eikä maallisista murehdi, joka on niin vapaa, ettei häntä ilo, pelko tai viha horjuta, se on Minulle rakas. "Jolla ei ole ennakkoluuloja, joka on puhdas, rehellinen, himoton, vapaa epätoivosta ja tykkänään kieltäytyy, täynnä kunnioitusta, se on Minulle rakas. "Joka ei rakasta, ei vihaa, ei murehdi eikä himoitse, joka sisällisesti luopuu onnesta ja onnettomuudesta, se on Minulle rakas. "Joka pitää ystävää ja vihamiestä yhdenarvoisena, jolle kunnia ja häpeä ovat yhdenveroiset, jolle kylmä ja kuuma, ilo ja suru ovat yhdenlaiset, mistään kiinni-riippumaton; joka kiitoksen ja moitteen suhteen on välinpitämätön, vaitelias, joka himojensa kautta ei ole mihinkään sidottu, ja lujatahtoisena Minua hartaudessa etsii, se on minulle rakas. "Mutta joka juo elämän-antavaa viisautta, josta olen puhunut, täynnä eläväksi tekevää uskon voimaa ja jonka hartauden päämaali olen Minä, sitä Minä yli kaiken rakastan." Miten suurta on tämä ikivanha vapauden unelma! Eikö ole aika jo siitä muistuttaa! Muistuttaa, että ihmisellä on tuo suuri synnyntäoikeus olla sisäisesti vapaa, olla tekemättä vastoin omaatuntoaan, olla tekemättä pahaa. Itsestään kirpoavat silloin
  • 39. ulkonaisetkin kahleet, valtion pakkoraudat, valheellisen tottumuksen kirous. Miten siihen enää voidaan pakoittaa sitä, jolle vapaus elämässä jo on kypsynyt kukkaansa: elämästä vapautumisen unelmaksi, hengen korkeimman saavutuksen ja kaiken tyhjiin raukeamisen erottamattomaksi renkaaksi, kuoleman onneksi, Nirvanaksi, joka alkaa samalla hetkellä kuin elämäkin ja johon arvaamattaan eräänä yönä aukee kuin kukan umppu avaruuden syleilyyn. Niin, ei kellään ole oikeutta estää ihmistä vapautumasta tai pakoittaa häntä tekemään pahaa, ja pian ei kellään ole oleva siihen edes voimaa. Kun sielut heräävät… Ihmishengen uudestisyntyminen on jo alkanut. Rauhan sanomista luen joka päivä tätä uuden ajan evankeliumia, joka ihmeellisellä tavalla yhtyy tuohon vanhaan ja joka on kuin balsamia sielulleni. Se kuiskii minun omaantuntooni uusia ihania käskyjä, jotka tahtoisin piirtää loimuavilla tulikirjaimilla taivaanlakeen: Jos tahdot parantaa maailmaa, niin ala itsestäsi! Jos tahdot olla vapaa, niin ole sitä heti! Jos tahdot olla hyvä, niin ole sitä heti! Jos tahdot olla todella suuri, niin säteile niinkuin aurinko hyville ja pahoille! Jos tahdot olla sankari, niin kavahda tappamista, mutta älä pelkää kuolemaa! Jos tahdot olla rauhan rakentaja, niin kokoa kaikki kansat renkaaksi murhaavaa tulta vastaan, niin ettei yhdenkään käsi nouse
  • 40. kostamaan pahaa pahalla, sillä muutoin ei pahalla ole milloinkaan loppua! Parempi on tulla surmatuksi kuin itse surmata. Ja suurin sankaruus nykyaikaisessa sodassa on olla tappamatta. Miten syvästi minä ihailen tuota naista, tuota Kaarina Linnaa, joka tällaista unelmoi ja tällaisia ajatuksia kylvää. Hän lausuu julki juuri sen, jolle itse turhaan olen etsinyt ilmaisumuotoa, hän hedelmöittää henkeäni joka päivä. Monasti olen aikonut lähestyä häntä, pyrkiä tutustumaan häneen, mutta aina olen empinyt. Omaa heikkouttani olen peljännyt. Jos hänen aineellinen kuorensa olisi minun aineelleni vastenmielinen, niin jaksaisinko henkeni silmällä nähdä hänet enää niin kauniina kuin hän kirjoituksistaan päättäen on? Simo pelästyttelee minua aina vähän päästä. Vielä äsken hän pilkkasi ihailuani. Hän puhuu yleensä naisista tavalla, joka minua syvästi loukkaa ja murhetuttaa. Suuttuisin hänelle, ellen koettaisi häntä ymmärtää. Kuinka sanookaan intialainen viisauden kirja: "Joka ei ainoatakaan olentoa vihaa, joka on hyvä, armelias, vapaa itsekkäisyydestä… se on Minulle rakas." Ah, sinä suuri Minä, tule minun sydämeeni, verhoa lempeään huntuusi minun pikku-minäni! Luulenpa tosiaan, että hourin samaan tapaan kuin Topias Outari. Miten Simo ivaisi minua jos hän oikein tuntisi minut. En uskalla paljastaa itseäni hänelle. Niin heikko olen. Sentähden vuodatan ajatukseni paperille. Ja miksi puhuisin hänelle asioista, joihin hän ei ole kypsä. Kallis neste vuotaisi maahan ruukusta, jossa sille ei ole tilaa. * * * * *
  • 41. Olen nähnyt ihmeen. Tuon Veran, tuon Oula Kuutin salaperäisen tyttären. Ja hän on Kaarina Linnan holhotti. Se on omiaan moninkertaisesti kiinnittämään mieltäni häneen. Miten kummasti elämänvirta minua työntää sinne päin. Onko tämä kaikki jonkun näkymättömän käden johdatusta? Minä en himoitse naista, minä ihailen häntä. Varmasti on nainen hienompi, eteerisempi, herkempi osa ihmissielua. Ja sen täytyy astua historian ohjaksiin nyt juuri, kun miehen sielu julmissa teorioissaan laskelmallisessa murhanhalussaan ja myötätunnottomassa nerossaan on kehittynyt huippuunsa, josta se sortuu ilman naisen apuuntuloa. Ah, eikö ollutkin Enfantin aikoinaan oikeassa, kun hän etsi ihanteellista Äitiä seurakunnalleen! Miten ihmisen elämä on lyhyt ja miten kehitys on pitkä. Jos on totta, mitä eräs Aarian oppi-isistä vakuuttaa, että me ihmiset käytyämme läpi jo edenismin, viileyden, patriarkaatin ja barbarian tilat, yhä vieläkin elämme ihmiskunnan lapsuuden ajassa ja että nykyiseltä sivilisatsionin asteelta pääsemme vasta "garantismiin", joka tarjoo vain sääntöjä, takeita ihmisten onnellisuudelle, ja että se taas johtaa "sosiantismiin", jossa itsekkäisyys vasta alkaa hävitä, ja että sen ajan takana vasta häämöittää "harmonismi", jolloin ihminen on vapaa, niin onpa matka edessämme huimaavan pitkä! Mutta ihanteen aavistus, vertauskuva on jo olemassa. Ihmisluonto on taas valmis vyöryttämään vähemmäksi yltään aineellisuuden raskasta taakkaa. Ja tällä kertaa on maailman synnin varmaankin ottava päälleen ei Jumalan Poika, vaan Jumalan Tytär. Hän on raoittava meille luonnon salaisuuksien huntua uudelta puolelta ja avaava tieteelle, taiteelle ja uskonnolle, järjelle ja rakkaudelle uudet mysteeriain kentät vallattaviksi.
  • 42. * * * * * Miten minusta vielä äsken tuntui, että minun pitäisi elää hyvyydelle ja etsiä totuutta kaikissa elämän erilaisissa muodoissa, niinkuin Kaarina Linna! Nyt minulla on vain yksi yksinkertainen päämäärä: palvella kauneutta, jonka nimi on Vera, Vera! Vera! Sinun vuoksesi melkein unohdan, että minulla on ollut onni tutustua myös pitkien viikkojen salaisen ihailuni esineeseen: Kaarina Linnaan. Ei, hän ei ollut mikään sellainen strindbergiläisen naisvihan esiinhaltioima ja pannaan julistama naishirviö-tyyppi, jolla Simo minua peloitteli. Hän oli oikea ihminen, ei tuollainen touhuava, eteenpäin nyrkkeilevä yhteiskuntakone, jollainen on minulle kauhistus, vaan hiljainen ja syvä, täysin sopusoinnussa tarkoitusperänsä kanssa. Hänessä on enemmän ajatusta kuin käsitteitä, enemmän viisautta kuin älyä, niin luulen. Hänen suuret, harmaat silmänsä ovat miettiväiset ja vähän surumieliset ja koko hänen olennossaan on jonkinlaista lapsellista ujoutta ja elämän orpoutta kuvastava piirre, joka ilman tuota tyynen otsan selkeytynyttä tasapainon kaarta antaisi hänelle melkein avuttoman ilmeen. Hänen voimansa on kokonaan sisällistä laatua ja siitä minä pidän. Minä kiitän sinua, Kaarina, siitä, ettet särkenyt ihannettani, mutta enemmän vielä kiitän sinua siitä, että annoit minulle Veran. Vera, sinä olet jumaluus itse, salaperäisyys, moninaisuus ja yhtenäisyys, täydellisyys, jonka edessä kysely hyvästä ja pahasta lakkaa. Sinä sanot rakastavasi pahuutta ja eläväsi valheessa, mutta minusta sinä olet hyvyys ja totuus. Niin on kauneutesi minut hurmannut. En tunne enää itseäni. Mihin on minun kansanvaltaisuuteni hävinnyt? Sinua katsellessani teen eron ruhtinaiden ja roskaväen
  • 43. välillä. Tyrannivallan rikkilyödystä komeudesta tahtoisin säilyttää viimeiset keisarilliset vaunut sinua varten, jotta sinun pienen, jalokivin soljitellun jalkasi ei tarvitsisi astua samaan lokaan, jota rahvas polkee. Sinä olet minun syntini ja autuuteni, Vera! Ensimäisen kerran elämässä on toinen ihminen minut kokonaan vallannut. Miten kaunis sinä olet! Minkä näköinen, en tiedä! Minusta tuntuu, että sinulla on siniset hiukset ja vihreät silmät. Sinun jokainen liikkeesi olisi kuvanveistäjän ikuistamisen arvoinen. Sielustasi tiedän vielä vähemmän. Sinä olet Aasian arojen vaarallinen ja nukkuva kissaeläin, julma ja pyhä kuin Ganges-virta. Sinusta uhoaa jonkinlainen lempeä anarkia, maailmaasyleilevä, myötätuntoinen melankolia, joka riisuu minulta voiman. Laki ja käskyt lakkaavat sinun läsnäollessasi. Ei mikään pidä paikkaansa sinun suhteesi. Sinulla on lupa kaikkeen. Olet niin kaunis! Ehkäpä olet tullut tielleni siksi, että oppisin rakastamaan elämää koko laajuudessaan, uskomaan kaiken pyhään yhteyteen. Ja elämä, kaikkeus, olet sinä, Vera!
  • 44. IV. — Mikä suo minulle kunnian nähdä niin harvinaista vierasta kuin sinä? hymyili Kaarina veljelleen viitaten häntä istumaan. — Arvannet kyllä, ellet vielä ole kadottanut kaikkea järkeäsi, jota kyllä pahoin pelkään, mikä on syy, sanoi tohtori Linna pahaa- ennustavalla äänellä. — Niin, arvaan, että se on joku epämiellyttävä asia, jokin moite, sillä muunlaista sanottavaa ei sinulla vielä koskaan ole minulle ollut, virkahti Kaarina hiljaisesti ja surumielisesti. — Totta puhuen, minä häpeän olla veljesi, kantaa samaa nimeä kuin sinä. Sinä olet tehnyt siitä hulluinhuoneen nimikilven, hysteeristen, edesvastuuttomain naisten ja yhteiskunnan rappio- ainesten tunnussanan! Tiedätkö, kyllä jo menee liian pitkälle, että sinä rupeat painattelemaan ja levittelemään kansanvillityslehtisiä ja kutsumaan kokoon rauhankonferensseja, ikäänkuin olisit vähintään joku Wilson! Tohtori käveli kiivaasti edestakaisin huoneessa kädet housuntaskuissa.
  • 45. — Et sinä noin raivostunut yhdestäkään sodanjulistuksesta, et pitänyt niitä villityksenä. — Sota on paha, mutta valitettavasti välttämätön paha. — Miksi sinun mielestäsi välttämätön? — Siksi, että paha yleensä on yhtä välttämätön kuin sinun mielestäsi hyvä. Se kuuluu maailmanjärjestykseen, jonka syvin, pohjimmaisin periaate piilee vastakohtaisuudessa. Kaikki edistys on taistelulla voitettava. Ei voi ajatella mitään kehitystä ilman sotaa, ei mitään todellisia luonteita ilman sitä. — Sen on muututtava henkiseksi. Tappamistavan täytyy voida hävitä ihmiskunnasta ja se häviääkin vielä… — Kuule, Kaarina, sanoi tohtori istuutuen ja muuttaen äänensä alentuvan tuttavalliseksi, jos minun periaatteihini ei kuuluisi olla puhumatta naisten kanssa periaatteista ja yleensä mistään järkevästä, niin olisin jo aikoja sitten todistanut sinulle kaikkien sinun elämänpyrintöjesi mahdottomuuden ja juurettomuuden. Niin, ne ovat epänormaalisia ja suvun heikontumisviettiä todistavia ja siihen viepiä. En epäile tarkoitusperiesi rehellisyyttä, mutta kaikkine hentomielisine parannus-houreinesi olet luvalla sanoen ihmiskunnalle ja kansallesi vaarallinen ja turmiollinen olento, joka minun velvollisuuteni ihmisenä ja lääkärinä, kansalaisena ja läheisenä omaisena olisi toimittaa turvallisempaan paikkaan päähänpistojaan lietsomaan. Minä vakuutan, että sinun kaltaisesi sielullinen sairaustapaus taivasta hipovine kuvitelmineen ei ole minun praktiikassani aivan tuntematon. Tiedän erään paikan, jossa varmasti tapaisit aatetoverejasi. Mutta heidän ei sallita lähetellä kiertokirjeitä virastoihin ja yhdistyksiin ja kahviloiden pöydille, niinkuin sinä teet.
  • 46. Etkö sitten ollenkaan itse huomaa, että teet itsesi naurettavaksi ja pilaat menettelylläsi hyvätkin asiat? Älä tapa! Älä tapa! Tuonhan me kaikki tunnemme. Mutta eihän tarvitse silti jäädä tuijottamaan siihen kuin idiootti, ulottaa sitä aina eläinkuntaan asti, niinkuin sinä teet, napostella siltä pohjalta heiniä, riisinjyviä, puhtaaksi viljeltyjä vesiherneitä ja ylläpitää kasvisruokalaa, joka ei kannata ja jossa pilataan ihmisten terveys. Lääkärinä tiedän, että täytyy olla tehnyt kovin paljon syntiä ennenkuin ihmisparan vatsa ansaitsee tuollaisen rangastuksen. Normaalille, terveelle ihmiselle se on epäoikeudenmukainen ja usein sopimaton. Tämä asian käytännöllisestä puolesta. Sen aatteellisesta puolesta ei kannata edes puhua, se on naisellisen epäloogillisuuden tyypillinen hedelmä. Elämän, vaikkapa vain orgaanisen elämän hävittämistä, siis surmaamista, ei voi koskaan välttää. Tai missä on raja? Minä tiedän, että sinun talosi on kärpästen ja muiden basillinkulettajien ja pörriäisten paratiisi: niitä ei siellä tapeta, mikäli olen kuullut. Eikä tietysti muitakaan syöpäläisiä. Tohtori hymyili kylmän hupailevalla ivalla. — Ja tällä siivottomalla tempulla luulet päässeesi ideasi juuriin! Niin, basillinkulettajat säästät kyllä, mutta mitä tahdot tehdä itse basilleilla? Säästät tietysti nekin, siitä yksinkertaisesta syystä, ettet osaa tehdä parempaa. Mutta meidän lääkärien koko altruistinen elämäntehtävä uusimpana aikana on perustunut pääasiallisesti voitokkaaseen taisteluun mikroobeja vastaan. Tuon silmin näkymättömän biljoona-elämän tuhoamiseen perustuu ihmiskunnan elämä ja toivo, sen terveydellisten suhteiden kohoaminen ja sen henkisen voiman säästö. Me ihmiset menestymme kuten muutkin eläimet vain tappamalla tieltämme pois meille vahingollista elämää. Aate, josta ei voi toteuttaa kuin pienen alku tyngän, jonka
  • 47. noudattamisessa ei voi olla rehellinen, perinpohjainen, johdonmukainen, on siveelliseksi ohjenuoraksi kelpaamaton. Saman tuomion voisi lähemmin asioita tarkastellen langettaa kaikesta sinun pakkomielteistäsi, joita tietysti itse luulet ihmiskunnan johtaviksi aatteiksi: maailman yksikielisyydestä, valtion lapsenhoidosta, samanlaisesta arvonimestä naidulle ja naimattomalle naiselle ja mitä ne kaikki ovat! Ne ovat löyhämielisiä ja typeriä rappeutumisteorioja, jotka johtaisivat tyhjyyteen ja perikatoon, elleivät ne sitä ennen luhistuisi käytännölliseen mahdottomuuteensa aivan kuin Tolstoin sukupuoli- tai -puolettomuusopit ja puhtausihanteet. Niin, niin, tietysti kannatat niitäkin! No, sinä olet jo kautta maan tunnettu hupsutteluistasi ja nuo sinun vapaamuurarisalaseurasi jäävät kyllä omaan arvoonsa. Niistä en sano mitään. Mutta tämä uusi "cymbalum mundi", tämä Rauhan sanomain rauhan liitto! Etkö käsitä, että se on liian rohkeaa peliä. Tunkeutua suurpolitiikan alalle, josta et ymmärrä yhtään mitään! Ja noilla valteilla! Nyt juuri kun on toimittava aivan päinvastoin! Nyt juuri on meidän koottava kansa yksimieliseen puolustusasentoon, saatava omat sotavarustukset. Tuhannet ihmiset työskentelevät par'aikaa sen puolesta henkensä uhalla. Ja sinä, sinä uskallat… Suomalainen sotaväki on päivän polttavin kysymys. Niin kauan kuin meillä ei ole sitä, ei Suomi mahda mitään. — Ja mitä mahtaisi se, vaikka sellainen olisikin? Ei mitään. Kourallinen ihmisiä, äkkiä kokoonhaalittu asevarasto vuossatoja varustautuneita valtiomahteja vastaan! Voimain haaskausta! Järjettömyyttä! — Sinä unohdat, että meidän tällä hetkellä on taisteltava muutakin kuin ulkonaista valtiomahtia vastaan, että meidän on taisteltava paitsi valtiollisen itsenäisyytemme myöskin sisäisen järjestyksemme ja turvallisuutemme puolesta anarkiaa vastaan, että meidän on
  • 48. lakattava olemasta epäjärjestynyt ja veltto rosvovaltio, jos kerran rohkenemme tavoittaa vapauden kruunua. Meidän täytyy pyrkiä vapaaksi samalta tasolta kuin kaikki muutkin. Miten kehtaisi Suomen kansa tällaisena tulla vaatimaan vapautta muiden kovasti koeteltujen ja sankarillisesti uhrautuneiden kansojen rinnalle, kansa, joka mieluummin suutelee ruoskaa kuin raaskii hellittää kalleista hengistään ainoatakaan, kansa, jonka miehet eivät enää viitsi tehdä työtä, silloin kun muualla maailmassa ponnistetaan yötä päivää, ainoastaan maata ja tulla syötetyiksi kalliilla palkoilla kuten laiskat sotamiehet, jotka he nähtävästi ovat ottaneet esikuvikseen, kansa, jonka naiset ilomielin synnyttävät äpäröitä sitä tallaavalle viholliselle raakavoimalle! A propos, viimeinen Suomen naisia koskeva uutinen on se, että he ovat kutsutut, lakkolaiset nimittäin, toverien turvaan — sotalaivoille. Kauniita turvapaikkoja todellakin! Sotalaivat ovat nyttemmin siis enää vain kelluvia porttoloita. Siitä nyt näet, mihin vie tuo jalo rauhan-aate. Tai kenties ei sinun kannaltasi tässäkään ilmiössä ole mitään moitittavaa! Tohtorin äänessä oli viiltävä sävy ja hänen pienet silmänsä katsoivat Kaarinaan kuin pistävät neulat. — Minun kannaltani katsoen, on parempi että sotalaivat ovat vaikka täynnä porsaita kuin että niitä käytetään surmaamis- ja hävittämistarkoituksiin. Kaarinan äänensävyn levollinen huumori ärsytti tohtoria. Hän nousi taas kiivaasti kävelemään. — Elää, elää, siis millä hinnalla tahansa, on sinun ihanteesi! Mikä hirvittävä materialisti on nainen! Mielestäsi on siis tosiaan parempi, että rakkauden valta rehoittaa, vaikka kunnian kustannuksella, että
  • 49. jonkun valtion kansalaiset, sen vannoutunut varusväki, mieluummin viettävät aikansa irstailuissa kuin hoitavat kansansa kohtaloa! — On väärin pakoittaa heitä hoitamaan sitä sillä tavoin, ase kädessä! — Niin sitä vielä vain toistaiseksi hoidetaan ja tullaan hoitamaan ehkä aina. Kuinka monen kansan elämä on pelastunut vain siten, että yksilöt ovat uhranneet omansa! — Mutta miksi eivät yksilöt siis tahdo uhrata henkeään vielä paljon suuremmalle asialle, rauhalle, joka olisi koko ihmiskunnan pelastus? Samota sotaan ollakseen tappamatta? Sellainen olisi todella ihmisyyden arvoinen armeija! Sen asian vuoksi kannattaisi kuolla! Mutta ihmisraukat eivät tee sitä siksi, että he ovat heikkoja ja yksinäisiä, siksi, että he eivät tiedä toisiensa ajatuksista, eivät ajoissa ole järjestyneet miljoonien yksilöjen yhteistahdoksi, rauhan liitoksi. Jos rauhan pyrintö olisi jo ennen sotaa ehtinyt läpitunkea elämän käytännön s.o. muuttunut aatteesta järjestöksi, ei sotaa olisi tullutkaan. Olisi säästynyt tämä poiskulumaton kulttuuritahra 1900- luvun ihmiskunnalta, tämä masentava yllätys jokaiselta, joka on uskonut ihmisyyteen, puhumattakaan siitä korvaamattomasta tappiosta, mitä sota henkisiin ja aineellisiin voimiin nähden merkitsee. Ja jotta tämä kauheus vast'edes välttyisi ja jotta se mahdollisimman pian päättyisi, on rauhan liitto juuri maailmanhistoriallinen päivänkysymys. Pois sotilastakit! Ihmiset on saatava ymmärtämään, että ne ovat pyövelien, joukkoteurastajien pukuja, että mikään mahti maailmassa ei saa eikä voi pakoittaa ihmisiä niissä merkeissä toimimaan, ja että jos hallitukset ovat tehneet erehdyksen aloittaessaan kansainvälisen murhatyön, eivät
  • 50. kansat tämän erehdyksen huomattuaan ole velvolliset sitä jatkamaan. Joka miekkaan tarttuu, se miekkaan hukkuu… — Rauhan aate on erinomainen rauhan aikana, mutta keskellä palavinta sotaa se on mahdottomuus, surman hansikas; joka ei tartu miekkaan, hukkuu silloin vielä varmemmin. Näet sen venäläisistä. Heillähän kukoistaa jo tuo jalo rauhan rutto. He juoksevat pakoon, minkä kerkiävät, ottavat kuulat selkäänsä uusilta veljiltään, valtio hajoaa, järjestys katoaa, vihollinen tallaa suuren valtakunnan jalkoihinsa, syö suihinsa, ja vieraat vallat pistävät taskuihinsa sen rikkaudet. Ja meidän suhteemme tekevät venäläiset samoin. Raaka väkivalta rehoittaa, kaikki huonot ainekset varttuvat ja kasvavat vihollisten pistimien varassa. Kukaan kunnon ihminen ei enää ole varma hengestään eikä omaisuudestaan. Tehdään väkivallan töitä kaupungeissa ja maaseudulla ja, mikä surullisinta, omat kansalaiset alkavat kilpailla tässä ammatissa vieraan sotaväen kanssa… — Miten voisi muuten ollakaan, sehän on vain luonnollinen seuraus siitä, että murhaaminen on nostettu valtioprinsiipiksi, että sota on hyväksytty. Sodan hyväksyjäin pitäisi siis, jos he olisivat johdonmukaisia, ottaa vastaan kaikki muukin pienoiskoollinen rikollisuus nurkumatta. — Mutta ei paljain käsin. Vieraan asevoiman sorto- ja mielivaltaa vastaan on velvollisuus asettaa kotimainen asevoima, samoin pitämään kurissa omia vahinkoeläimiä. On tultu siihen, ettei pian ole muuta valittavana kuin surmata tai tulla surmatuksi. — Jos kerran täytyy valita, niin mieluummin sitten tulla surmatuksi kuin surmata, siinä sankaruus, jota ihmisiltä juuri tänä aikana vaaditaan, jotta he pääsisivät tästä alennuksen tilasta uuteen onnellisempaan elämään.
  • 51. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebooknice.com