Professional Documents
Culture Documents
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
Web Services
UDDI (Universal Description, Discovery and
Integration)
•UDDI is an XML-based standard for describing,
publishing, and finding Web services.
•UDDI is a specification for a distributed registry of
Web services.
• UDDI is platform independent, open framework.
Web Services
RESTFUL Services
•REST stands for Representational State Transfer.
•First introduced in 2000 by Roy Fielding at the
University of California.
•REST uses HTTP methods explicitly i.e. the
interaction between the client and services will
happen through HTTP protocol. Expose directory
structure like URI’s.
•Transfer XML, Java Script Object Notation (JSON)
or both.
RESTFUL Services
@Stateless
@Path("com.seller.vishal.seller")
public class SellerFacadeREST {
public SellerFacadeREST() {
super(Seller.class);
}
@POST
@Override
@Consumes({"application/xml", "application/json"})
public void create(Seller entity) {
super.create(entity);
}
@PUT
@Path("{id}")
@Consumes({"application/xml", "application/json"})
RESTFUL Services
public void edit(@PathParam("id") Long id, Seller entity) {
super.edit(entity); }
@DELETE
@Path("{id}")
public void remove(@PathParam("id") Long id) {
super.remove(super.find(id));
}
@GET
@Path("{from}/{to}")
@Produces({"application/xml", "application/json"})
public List<Seller> findRange(@PathParam("from") Integer
from, @PathParam("to") Integer to) {
return super.findRange(new int[]{from, to});
}
RESTFUL Services
Identifies the URL path that a java class will respond
to.
@path annotation can route to a class or route to a
specific method.
@GET: most used, read-only and public access
method.
@POST: used to insert/add data. With HTTPs you
can protect the data.
@PUT: used mainly for updating data but can be
used for inserting/adding data
@DELETE: used to delete data
@HEAD: used to return meta-data of the resource
RESTFUL Services
@produces specifies the media type that a method
will produce and send back to the client. When you
@produces at the class level, its treated as a
default. When used with methods, it becomes a
require to access that method. You can also define
more than one for a specific method. It does do
some encoding but nothing extensive.
@consumes : Basically tells your application to
expect data to be sent in the body of the HTTP
message. You will need to define what type of data
sent up. Again this another way to limit what HTTP
message can access specific methods. You can
define your own or used the predefine Media Type.
REST Websrvices
•Representational state transfer is a software
architectural style that defines a set of constraints to be
used for creating Web services.
•Web services that conform to the REST architectural
style, called RESTful Web services, provide
interoperability between computer systems on the
internet.
SOAP vs REST
Virtualization
•Virtualization, in computing, refers to the act of
creating a virtual (rather than actual) version of
something, including but not limited to a virtual
computer hardware platform, operating system (OS),
storage device, or computer network resources.
•Virtualization technologies have gained a renewed
interested recently due to confluence of different
phenomena.
a) Increased Performance and Computing capacity.
b) Underutilized Hardware and Software Resources.
c) Lack of space.
d) Greening Initiatives.
e) Rise of Administrative costs.
Virtualization
Characteristics of Virtualization:
•Increased Security: The ability to control the execution of a
guest in a completely transparent manner opens new
possibilities for delivering a secure, controlled execution
environment.
•Managed Execution.
•Sharing: Virtualization allows the creation of a separate computing
environment within the same host.
•Aggregation: A group of separate hosts can be tied together and
represent to guest as a single virtual host.
•Emulation: This allows for controlling and tuning the environment that
exposed to guests.
•Isolation: It allows multiple guests to run on the same host without
each of them interfering with the other and also separation between
host and guests.
•Portability: It allows having your own system always with you
and ready to use, given that the required virtual machine
manager is available.
Virtualization
Taxonomy of Virtualization Techniques:
Virtualization
Taxonomy of Virtualization Techniques:
Virtualization is mainly used to emulate execution environment ,
storage and networks.
● Nonprivileged instructions
– That can be used without interfering with other
tasks because they do not access shared
resources. Ex. Arithmetic , floating & fixed point.
● Privileged instructions
– That are executed under specific restrictions
and are mostly used for sensitive operations,
which expose (behavior-sensitive) or modify
(control-sensitive) the privileged state.
● Behavior-sensitive – operate on the I/O
● Control-sensitive – alter the state of the CPU
register.
Privileged Hierarchy:
Security Ring
● Ring-0 is in most privileged level
, used by the kernel.
● Ring-1 & 2 used by the OS-level
services
● and , R3 in the least privileged
level , used by the user.
● Recent system support two
levels :-
– Ring 0 – supervisor mode
– Ring 3 – user mode
Hardware-level virtualization
● Full virtualization
– Ability to run program (OS) directly on top of a
virtual machine and without any modification.
– VMM require complete emulation of the entire
underneath h/w
– Advantages
● Complete isolation
● Enhanced security
● Ease of emulation of different architectures and
coexistence
– Key challenge is interception of privileged
instructions
Hardware virtualization Techniques
● Hardware-assisted virtualization
– In this hardware provides architectural
support for building a VMM able to run a
guest OS in complete isolation.
– Intel VT and AMD V extensions.
– Early products were using binary translation
to trap some sensitive instructions and
provide an emulated version
Hardware virtualization Techniques
Hardware-assisted virtualization
● Additional Ring -1
● No binary translation of
privileged instructions
● Commands are are
executed directly to h/w via
the hypervisor
Hardware virtualization Techniques
● Paravirtualization
– Not-transparent virtualization
– Thin VMM
– Expose software interface to the virtual machine
that is slightly modified from the host.
– Guest OS need to be modified.
– Simply transfer the execution of instructions
which were hard to virtualized, directly to the
host.
Hardware virtualization Techniques
Paravirtualization
● Privileged instructions of
guest OS is delivered to
the hyperviso0r by using
hypercalls
● Hypercalls handles these
instructions and accesses
the h/w and return the
result.
● Guest has authority to
directly control of
resources.
Hardware virtualization Techniques
● Partial virtualization
– Partial emulation of the underlying hardware
– Not allow complete isolation to guest OS.
– Address space virtualization is a common
feature of comtemporary operating systems.
– Address space virtualization used in time-
sharing system.
Operating system-level
virtualization
● It offers the opportunity to create different
and separated execution environments for
applications that are managed concurrently.
● No VMM or hypervisor
● Virtualization is in single OS
● OS kernel allows for multiple isolated user
space instances
● Good for server consolidation.
● Ex. chroot , Jails, OpenVZ etc.
Programming language-level virtualization
● Disadvantages
– Performance degradation -
● As it interposes and abstraction layer between guest &
host.
– Inefficiency and degraded user experience -
● Some of specific features of the host is unexposed.
– Security holes and new threats
● Case 1 – emulating a host in a completely transparent
manner.
● Case 2 - H/w virtualization , malicious programs can
preload themselves before the OS and act as a thin
VMM.