Benefits of Web Services - Briefing Form

wrackbaaΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 10 μήνες)

82 εμφανίσεις


.NET FRAMEWORK


The
Microsoft .NET Framework

is a
software component

that can be
added to or is included with
Microsoft Windows

operating system
. It
provides a large body of pre
-
coded solutions to commo
n program
requirements, and manages the execution of programs written
specifically for the framework. The .NET Framework is a key Microsoft
offering, and is intended to be used by most new applications created
for the Windows platform.

The pre
-
coded soluti
ons that form the framework's
class library

cover
a large range of
programming

needs in areas
including: user
interface
,
data access
,
database connectivity
,
cryptography
,
we
b application

development, numeric
algorithms
, and
network communications
. The
functions of the

class library are used by programmers who combine
them with their own
code

to produce applications.


Programs written for the .NET Framework execute in a
software

environment that manages the program's
runtime

requirements. This
runtime environment
, which is also a part of the .NET Framework, is
known as the
Common Language Runtime

(CLR). The CLR provides the
appearanc
e of an
application virtual machine
, so that programmers
need not consider the capabilities of the specific
CPU

that will execute
the program. The CLR also provides other important services such as
security mechanisms,
memory management
, and
exception handling
.
The class library and the CLR together compose the .NET Framework.
The framework is intended to make it easier to devel
op computer
applications and to reduce the vulnerability of applications and
computers to security threats..






DESIGN GOALS AND PRINCIPLE FEATURES


Microsoft .NET Framework was designed with several intentions
:



Interoperability

-

Because interaction between new and older
applications is commonly required, the .NET Framework provides
means to access functionality that is implement
ed in programs
that execute outside the .NET environment. Access to
COM

components is provided in the System.Runtime.InteropServices
and System.EnterpriseServic
es namespaces of the framework,
and access to other functionality is provided using the
P/Invoke

feature.



Common Runtime Engine

-

Programming langu
ages on the
.NET Framework
compile

into an
intermediate language

known
as the
Common Intermediate Language
, or CIL (formerly known
as Microsoft Intermediate Language, or MSIL). In Microsoft's
implementation, this intermediate language is not
interpreted
,
but rather compiled in a manner known as
j
ust
-
in
-
time
compilation

(JIT) into
native code
. The combination of these
concepts is called the
Common Language Infrastructure

(CLI), a
specification; Microsoft's implementation of the CLI is known as
the
Common Language Runtime

(CLR).



Language Independence

-

The .NET Framework introduces a
Common Type System
, or CTS. The CTS
specification

defines all
possible
datatypes

and
programming

constructs supported by
the CLR and how

they may or may not interact with each other.
Because of this feature, the .NET Framework supports
development in multiple programming languages. This is
discussed in more detail in
Microsoft .NET Languages
.



Base Class Library

-

The
Base Class Library

(BCL), part of the
Framework Class Library (FCL), is a library of type
s available to
all languages using the .NET Framework. The BCL provides
classes

which encapsulate a number of common functions,
including
file

reading and writing,
graphic rendering
,
database

interaction and
XML

document manipulation.



Simplified Deployment

-

Installation

of computer software
must be carefully managed to ensure that it does not interfere
with previously installed software, and that it conforms to
increasingly stringent security requirements. The .NET
framework
includes design features and tools that help address
these requirements.



Security

-

.NET allows for code to be run with different trust
levels without the use of a separate
sandbox
.



.NET FRAMEWORK ARCHITECTURE



Common Language Infrastructure (CLI)

The important component of the .NET Framework lies within the
Common Language Infrastructure, or CLI.
The purpose of the CLI

is
to prov
ide a language
-
agnostic platform for application development
and execution, including, but not limited to,
components

for exception
handling, garbage collection, se
curity, and interoperability.
Microsoft'
s implementation of the CLI is called the Common Language

Runtime, or
CLR
. The CLR is composed of four primary parts:





Common Ty
pe System

(CTS)



Common Language Specification

(CLS)



Just
-
In
-
Time Compiler

(JIT)



Virtual Execution System

(VES)

Assemblies


The intermediate CIL code is housed in
.NET assemblies
, which for the
Windows implementation means a
Portable Executable

(PE) file (EXE
or DLL). Assemblies ar
e the .NET unit of
deployment
, versioning and
security. The assembly consists of one or more files, but one
of

these
must contain the manifest, which has the
metadata

for the assembly.
The complete name of an assembly contains its simple text name,
version number, culture and
public

key

token; it must contain the
name, but the others are optional. The public key token is generated
when the assembly is created, and is a value that uniquely represents
the name and contents of all the assembly files, and a private key
known only to the

creator of the assembly. Two assemblies with the
same public key token are guaranteed to be identical. If an assembly
is tampered with (for example, by hackers), the public key can be
used to detect the tampering.


Metadata


All CIL is Self
-
Describing thr
ough
.NET metadata
. The CLR checks on
metadata to ensure that the correct method is called. Metadata is
usually generated by language compilers but developers can create
their ow
n metadata through custom attributes. Metadata also contain
all the information about assembly.

--
> The Base Class Library , sometimes incorrectly referred to as the
Framework Class Library (FCL) (which is a superset including the
Microsoft.* namespaces),
is a library of
classes

available to all
languages using the .NET Framework. The BCL provides classes which
encapsulate a number of common functions suc
h as file reading and
writing, graphic rendering, database interaction, XML document
manipulation, and so forth. The BCL is much larger than other
libraries, but has much more functionality in one package
.


Security

.NET has its own security mechanism, wit
h two general features:
Code
Access Security

(CAS), and validation and verification. Code Access
Security is based on evidence that is associated with a specific
as
sembly. Typically the evidence is the source of the assembly
(whether it is installed on the local machine, or has been downloaded
from the intranet or Internet). Code Access Security uses evidence to
determine the permissions granted to the code. Other co
de can
demand that calling code is granted a specified permission. The
demand causes the CLR to perform a call stack walk: every assembly
of each method in the call stack is checked for the required permission
and if any assembly is not granted the permiss
ion then a security
exception is thrown.

When an assembly is loaded the CLR performs various tests. Two such
tests are validation and verification. During validation the CLR checks
that the assembly contains valid metadata and CIL, and it checks that
the i
nternal tables are correct. Verification is not so exact. The
verification mechanism checks to see if the code does anything that is
'unsafe'. The algorithm used is quite conservative and hence
sometimes code that is 'safe' is not verified. Unsafe code wil
l only be
executed if the assembly has the 'skip verification' permission, which
generally means code that is installed on the local machine.


Versions


Microsoft started development on the .NET Framework in the late 90s
originally under the name of Next G
eneration Windows Services
(NGWS). By late 2000 the first beta versions of .NET 1.0 were being
released.

Version Name

Version
Number

Release
Date

1.0 Beta 1

1.0.????.0

2000
-
11

1.0 Beta 2

1.0.2914.0

2001
-
06
-
20

1.0 RTM

1.0.3705.0

2002
-
01
-
05

1.0 SP1

1.0.3705.209

2002
-
03
-
19

1.0 SP2

1.0.3705.288

2002
-
08
-
07

1.0 SP3

1.0.3705.6018

2004
-
08
-
31

1.1 RTM

1.1.4322.573

2003
-
04
-
01

1.1 SP1

1.1.4322.2032

2004
-
08
-
30

1.1 SP1 (Windows Server 2003
Version)

1.1.4322.2300

2005
-
03
-
30

2.0 RTM

2.0.50727.42

2005
-
11
-
07

3.0 RTM

3.0.4506.30

2006
-
11
-
06



.NET Framework 1.0

This is the first release of the .NET Framework that was released on
February 13
,
2002
. It is available on its own as a redistributable
package or in a software development kit. It is also part of the first
release of Microsoft
Visual Studio .NET

(a
lso known as Visual Studio
.NET 2002).

.NET Framework 1.1

This is the first major .NET Framework upgrade. It is available on its
own as a redistributable package or in a software development kit, and
was published
April 3
,
2003
. It is also part of the second release of
Microsoft
Visual Studio .NET

(released as Visual Studio .NET 2003).
This is the first version of the .NET Framework to be included as part
of the Windows operating system, shipping with
Windows S
erver 2003
.

Changes since 1.0



Built
-
in support for mobile
ASP.NET

controls. Previously available
as an add
-
on for .NET Framework, now part of the framework.



Security changes
-

enable Windo
ws Forms assemblies to execute
in a semi
-
trusted manner from the Internet, and enable
Code
Access Security

in ASP.NET applications.



Built
-
in support for ODBC and O
racle databases. Previously
available as an add
-
on for .NET Framework 1.0, now part of the
framework.



.NET Compact Framework

-

a version of the .NET Framework
for
small devices.



Internet Protocol version 6 (
IPv6
) support.



Numerous API changes.

.NET Framework 2.0

Released with
Visual Studio .NET

2005,
Microsoft SQL Server

2005 and
BizTalk

2006.

3.5 Beta 2

3.5.20706.1

2007
-
07
-
26



The 2.0 Redistri
butable Package can be downloaded for free
from
Microsoft
, and was published on
2006
-
01
-
22
.



The 2.0 Software Development Kit (SDK) can be do
wnloaded for
free from
Microsoft
.



It is included as part of
Visual Studio 2005

and
Microsoft SQL
Server 2005
.



Version 2.0 is the last version with support for
Windows 2000
.



It shipped with
Windows Server 2003 R2

(not installed by
default).

Changes since 1.1



Numerous API changes.



A new hosting API for native applications wishing to host an
instance of the .NET runtime. The new API gives a fine
grain
control on the behavior of the runtime with regards to
multithreading, memory allocation, assembly loading and more
(
detailed reference
). It was initially developed to efficiently host
the runtime in
Microsoft SQL Server
, which implements its own
scheduler and memory manager.



Full 64
-
bit support for both the x64 and the IA64 hardware
platforms.



Language support for
Generics

built directly into the .NET CLR.



Many additional and improved ASP.NET web controls.



New data controls with declarative data binding.



New personalization features for ASP.NET, such as support for
themes, skins and webpart
s.



.NET Micro Framework

-

a version of the .NET Framework related
to the
Smart Personal Objects Technology

initiative
more...
.

.NET Framework 3.0



Architecture of the .NET Framework 3.0

.NET Framework 3.0
, formerly called
WinFX
,
[1]

includes a new set of
managed code

APIs that are an integral part of
Windows Vista

and
Windows Server 2008

operating systems. It is also available for
Wi
ndows XP

SP2 and
Windows Server 2003

as a download. There are
no major architectural changes included with this release; .NET
Framework 3.0 includes version 2.0 of t
he
Common Language
Runtime
.
[2]

.NET Framework 3.0 consists of four majo
r new components:



Windows Presentation Foundation

(WPF), formerly code
-
named
Avalon
; a new
user interface

subsystem and
API

based
on
XML

and
vector graphics
, which uses
3D computer graphics

hardware and
Direct3D

technologies. See
WPF SDK

for developer
articles and documentation on

WPF.



Windows Communication Foundation

(WCF), formerly code
-
named
Indigo
; a service
-
oriented messaging system which
allows programs to inte
roperate locally or remotely similar to
web services
.



Windows Workflow Found
ation

(WWF) allows for building of
task automation and integrated transactions using
workflows
.



Windo
ws CardSpace

(WCS), formerly code
-
named
InfoCard
;
a software component which securely stores a person's digital
identities and provides a unified interface for choosing the
identity for a particular transaction, such as logging in to a
website.

.NET Fram
ework 3.5


This article or section contains information about
computer
software

currently
in development
.

The content may change as the software development progresses.




This version of the framework uses version 2.0 of the
CLR

(the
same model as the use of CLR 2.0 in .NET Frame
work 3.0).
However changes are applied to the installed CLR 2.0.



Full support for .NET Framework 3.5 project types, as well as
targeting .NET Framework 3.5 in builds, will be included in
Visual
Studio 2008
.

Changes



New language features in
C#

3.0 and VB.NET 9.0 compiler



C# 3.0 adds support for expression trees and lambda methods



Extension methods




Anonymous types with static type inference



Language Integrated Query (LINQ)

along with its various
providers

o

LINQ to Objects

o

LINQ to XML

o

LINQ to SQL



Paging support for ADO.NET



ADO.NET synchronization API to synchronize local caches and
server side datastores



Asynchronous network I/O API
[3]




Peer
-
to
-
peer networking stack, including a managed
PNRP

resolver
[4]




Managed wrappers for
WMI

and
Active Directory

APIs
[5]




Enhancements to the
WCF

and
WF

runtimes that let WCF work
with
POX

and
JS
ON

data, as well as expose WF workflows as
WCF services.
[6]




Support for
HTTP p
ipelining

and
syndication feeds
.
[6]


See Also



Visual Studio 2008




Interview with
Channel 9
,
Jason Zander
, general manager of the
.NET Framework team, which discussed version 3.5 of the
framework.
[7]


Future development


This article or section contains information about scheduled or
expected
future software
.

The content may change as the software release approaches and
more information becomes available.


Microsoft has no
t yet made public a roadmap of the development plans
for future edition of .NET framework, but has released general
information regarding it. Future revisions will have better support for
parallel programs, that target multi
-
core or distributed systems.
[8]

To
this end, it will include technologies like PLINQ (Parallel
LINQ
),
[9]

a
parallel implementation of the LINQ engine, and
Task Parallel Libra
ry
,
which exposes parallel constructs via method calls.
[10]

.NET vs. Java and Java EE

See also:
Comparison of the Java and .NET platforms

and
Comparison of C# and Java


The
CLI

and
C#

have many similarities to Sun's
JVM

and
Java
. They
are strong competitors. Both are based on a
virtual machine

model
that hides the details of the computer hardware on which their
programs run. Both use their own intermediate
byte
-
code
, Microsoft
calling theirs
Common Intermediate Language

(
CIL
; formerly
MSIL
)
and Sun
Java bytecode
. On .NET, the byte
-
code is always
compiled
JIT
, although the ngen.exe utility can be used to pre
-
JIT the code into
a cache
d native image; with Java the byte
-
code is either interpreted,
compiled in advance, or compiled JIT. Both provide extensive class
libraries that address many common programming requirements, and
both address many security issues that are present in other
a
pproaches. The namespaces provided in the .NET Framework closely
resemble the platform packages in
Java EE

API Specification both in
style and invocation.

.NET in its complete form (Microsof
t's implementation) is currently
only fully available on Windows platforms and partially available on
Linux and Mac,
[11]
[12]
[13]

whereas Java is fully available on nearly all
platforms.
[14]

.NET was built from the ground
-
up to support multiple
programming languages while targeting Microsoft Windows; the Java
platform was initially built to support only the Java language on many
operating system platforms under
the slogan, "
Write once, run
anywhere
." Support for many programming languages has been added
to the Java platform
[15]
.

Microsoft
's implementation of .NET is
closed source
,
whereas
Sun's

reference implementation of Java is becoming
open source

(includin
g
the
class library
, the
compiler
, the
virtual machine
, and the various
tools associated with the
Java Platform
).
[16]

However, the third
-
party
Mono

project is developing an open source
implementation of subsets of the .NET Framework, including the
Common Language Runtime
, for the Linux, Solaris, Mac OS, and
Windows platforms. The current version supports version 2.0 of
.NET,
[17]

.

Criticism

Some concerns and criticisms relating to .NE
T include:



With the introduction of the .NET framework, the
Visual Basic

language was replaced by the
Visual Basic .NET

language, which
caused
controversy among transitioning developers
.



Succeeding versions of .NET lock out older operating system
s.
For example, .NET v.3.0 and above excludes Windows 2000 and
prior versions, as well as XP SP1
[18]
. This can be construed as a
way by Microsoft to move away from pre
vious versions, and
force operating system purchases.



Although it is more a business decision than a real criticism on
the framework, some people have expressed concern that the
framework is too much tied to the Microsoft Windows operating
system.
[19]

However, the existence of
alternative
implementations

for other platforms (though not yet comp
lete)
begins to alleviate this criticism.



Several
backward and forward incompatibilities

exist between
.NET 1.0, .NET 1.1, and .NET 2.0. These are well
-
documen
ted
however, and mostly include security fixes,
[20]

changes in the
underlying implementation (such as the
GetHashCode()

implementation),
[21]

as well as marking many methods as
Obsolete
.
[22]

Additionally, the framework allows running different
versions side
-
by
-
side, to alleviate problems of version
incompatibility.
[23]




Applications runn
ing in a managed environment such as the
Microsoft framework's CLR or Java's JVM tend to require more
system resources than functionally similar applications that
access machine resources more directly. However, some
applications have been shown to perform

better in .NET than in
their native version. This could be due to the runtime
optimizations made possible by such an environment, the use of
relatively well
-
performing functions in the .NET framework,
JITting

of managed code, or other aspects of the CLR.
[24]
[25]




As
JIT

languages can be more easily reverse
-
engineered than
native code to algorithms used by an application, there is
concer
n over possible loss of
trade secrets

and the bypassing of
license control mechanisms. However, many
obfuscation

techniques already developed can help to prevent this; indeed
Microsoft's Visual Studio 2005 includes such a tool produced by
PreEmptive Solutions (see
dotfuscator
).


Alternative implementations

The Microsoft .NET Framework is the predominant implementation of
.NET technologies. Other implementations for parts of the framework
exist. Since the runtime engine is described by a ECMA/ISO
specification, other implementatio
ns of it are unencumbered by
copyright issues. It is more difficult to develop alternatives to the base
class library (BCL), which is not described by an open standard, and
may be subject to copyright restrictions. Additionally, parts of the BCL
have Windo
ws
-
specific functionality and behavior, so implementation
on non
-
Windows platforms can be problematic.

Some alternative implementations of parts of the framework are listed
here.



Microsoft's
Shared Source Common Language Infrastructure

is a
shared source

implementation

of the CLR component of
the .NET
Framework. It runs on Microsoft Windows XP,
FreeBSD
, and
Mac
OS X

10.2.



Portable.NET

(part of
DotGNU
) provides an implementation of
the Common Language Infrastructure (CLI), portions of the .NET
Base Class Library (BCL), and a C
# compiler. It supports a
variety of CPUs and operating systems.



Mono

is an implementation of the CLI and portions of the .NET
Base Class Library (BCL), and provides add
itional functionality. It
is
dual
-
licensed

under
free software

and
proprietary software

licenses. Mono is being developed by
Novell, Inc.

It includes
support for ASP.NET, ADO.NET, and evol
ving support for
Windows Forms

libraries. It also includes a C# compiler, and a
VB.NET compiler is in pre
-
beta form.



CrossNet

is an implementation of the CLI and portions of the
.NET Base Class Library (BCL). It is
free software
. It parses .NET
assemblies and generate
s unmanaged C++ code that can
compiled and linked within any ANSI C++ application on any
platform.



What is .NET??


.NET is the Microsoft Web services strategy to connect information,
people, systems, and devices through software. Integrated across the
M
icrosoft platform, .NET technology provides the ability to quickly
build, deploy, manage, and use connected, security
-
enhanced
solutions with Web services. .NET
-
connected solutions enable
businesses to integrate their systems more rapidly and in a more agi
le
manner and help them realize the promise of information anytime,
anywhere, on any device.

The Microsoft platform includes everything a business needs to
develop and deploy a Web service
-
connected IT architecture: servers
to host Web services, developmen
t tools to create them, applications
to use them, and a worldwide network of more than 35,000 Microsoft
Certified Partner organizations to provide any help you need.

What are Web Services?

If you ask a developer what Web services are, you'll hear something

like, "self
-
describing software modules, semantically encapsulating
discrete functionality, wrapped in and accessible via standard Internet
communication protocols like XML and SOAP."

But if you ask a business leader who has implemented Web service
-
based
solutions, you'll get a different kind of answer. You'll hear that
Web services are an approach that helps the business connect with its
customers, partners, and employees. They enable the business to
extend existing services to new customers. They help th
e business
work more efficiently with its partners and suppliers. They unlock
information so it can flow to every employee who needs it. They
reduce development time and expense for new projects. You'll hear
less about what Web services are and more about
what they enable
the business to do.


Benefits of Web Services

By enabling applications to share data across different hardware
platforms and operating systems, Web services provide many benefits,
including:



佰Oning⁴he⁤oo爠roe眠wu獩ne獳soppo牴rnities

b礠m慫ing it⁥慳礠to
捯湮e捴⁷ th⁰慲ane牳r



䑥汩癥ving⁤牡r慴ic慬l礠mo牥⁰e牳rn慬,⁩nteg牡瑥搠e硰e物rn捥猠co
u獥s猠th牯ugh⁴hee眠w牥ed映 m慲琠de癩捥c

in捬uding⁐䍳C



S慶ing⁴ime⁡ d mone礠b礠捵tting de癥汯灭ent time.



䥮捲c慳ang⁲ 癥湵e⁳t牥慭s

b礠en慢ling⁢u獩ne獳敳⁴o⁥慳 l礠m慫e
thei爠r睮⁗敢w獥s癩捥猠慶cilable⁴o瑨e牳r


Connecting Applications Through Web Services

Web services are revolutionizing how applications talk to other
applications

or, more broadly, how computers talk to other
com
puters

by providing a universal data format that lets data be
easily adapted or transformed. Based on XML, the universal language
of Internet data exchange, Web services can communicate across
platforms and operating systems, regardless of the programming
language in which the applications are written.


Each Web service is a discrete unit of code that handles a limited set
of tasks. However, although Web services remain independent of each
other, they can loosely link themselves into a collaborating group t
hat
performs a particular task.


Web Services Use Industry
-
Standard Protocols

Web services also make it possible for developers to choose between
building all pieces of their applications, or consuming (using) Web
services created by others. This means tha
t an individual company
doesn't have to supply every piece for a complete solution. The ability
to expose (announce and offer) your own Web services creates new
revenue streams for your company.

Web services are invoked over the Internet by means of indust
ry
-
standard protocols including SOAP; XML; and Universal Description,
Discovery, and Integration (UDDI). They are defined through public
standards organizations such as the World Wide Web Consortium
(W3C).

SOAP is an XML
-
based messaging technology standard
ized by the
W3C, which specifies all the necessary rules for locating Web services,
integrating them into applications, and communicating between them.
UDDI is a public registry, offered at no cost, where one can publish
and inquire about Web services.